this指针:类继承问题 ‘xxxx‘ was not declared in this scope

this指针

一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。

this指针核心就是指向对象本身,学c++课的时候介绍了一个用法,当形参名称和类成员名称一样时,就可以使用this指针区分,如下所示

class test{
    
    
    int x;
    public:
       test(int &x){
    
    
             this->x=x;
             }
}

类继承

在二叉搜索树的继承二叉树的代码中,二叉搜索树没有定义新的数据成员,直接使用Bintree中的数据成员,调用其函数,但是编译会报错,显示 ‘xxxx’ was not declared in this scope,显示成员为声明,这时候在未声明的成员前加上this指针就可以解决这个问题
二叉树:https://blog.csdn.net/qq_40602655/article/details/114552635)
二叉搜索树:https://blog.csdn.net/qq_40602655/article/details/114638453

template <class T>
class BinSearchTree:public BinTree<T>{
    
    
    protected:
       BinTreeNode<T> * Insertnode(BinTreeNode<T> *subtree,T &x);
       BinTreeNode<T> * deletenode(BinTreeNode<T> *subtree,T &x);
    publicvoid buildBStree();
       BinTreeNode<T> * Findtreenode(const T &X);
       void Insertnode(T &x){
    
     this->root=Insertnode(this->root,x);}
       void deletenode(T &x){
    
     this->root=deletenode(this->root,x);}
       BinTreeNode<T> *  Maxnode(){
    
    return Maxnode(this->root);}
       BinTreeNode<T> *  Minnode(){
    
    return Minnode(this->root);}
};

猜你喜欢

转载自blog.csdn.net/qq_40602655/article/details/114639192
今日推荐