C++ 构造函数主体前的冒号是否表示继承

C++ 构造函数主体前的冒号是否表示继承,c++,inheritance,struct,C++,Inheritance,Struct,我希望了解下面的代码是如何运行的。aproxy是否继承自mPtr?结构数组是否在结构aproxy中返回方法aproxy struct aproxy { aproxy( int & r ) : mPtr( & r ) {} // is this inheritance? void operator = ( int n ) { if ( n > 1 ) { throw "not binary digit";

我希望了解下面的代码是如何运行的。aproxy是否继承自mPtr?结构数组是否在结构aproxy中返回方法aproxy

struct aproxy {
    aproxy( int & r ) : mPtr( & r ) {}  // is this inheritance? 
    void operator = ( int n ) {
        if ( n > 1 ) {
            throw "not binary digit";
        }
        *mPtr = n;
    }
    int * mPtr;
};

struct array {      
    int mArray[10];
    aproxy operator[]( int i) {      
        return aproxy( mArray[i] );   // what does this line do?
    }
};

int main() {
    try {
        array a;
        a[0] = 1;   
        a[0] = 42;      
    }
    catch( const char * e ) {
        cout << e << endl;
    }
}
struct aproxy{
aproxy(int&r):mPtr(&r){}//这是继承吗?
void运算符=(int n){
如果(n>1){
抛出“非二进制数字”;
}
*mPtr=n;
}
int*mPtr;
};
结构数组{
int mArray[10];
aproxy运算符[](int i){
return aproxy(mArray[i]);//这条线做什么?
}
};
int main(){
试一试{
阵列a;
a[0]=1;
a[0]=42;
}
捕获(常量字符*e){
库特
这是遗产吗

这不是继承,而是构造函数初始化列表中数据成员
mPtr
的初始化。您正在初始化指向
int
的指针,以指向
int
的地址

return aproxy( mArray[i] );   // what does this line do?
它创建一个
aproxy
实例,用
mArray[i]
的值初始化,并按值返回

这是遗产吗

这不是继承,而是构造函数初始化列表中数据成员
mPtr
的初始化。您正在初始化指向
int
的指针,以指向
int
的地址

return aproxy( mArray[i] );   // what does this line do?

它创建一个
aproxy
实例,用
mArray[i]
的值初始化,并按值返回它。

否,此处没有继承。并且您不能“返回方法”;“方法”是“成员函数”的通俗名称。

否,此处没有继承。您不能“返回方法”;“方法”是“成员函数”的通俗名称