相关疑难解决方法(0)

如果构造函数参数与C++中的成员变量同名,该怎么办?

首先是一些代码:

class CInner {
public:
    CInner( const CInner& another ) { //impl here }
private:
    // some member variables
}

class COuter {
public:
    COuter( const CInner& inner ) : inner( inner ) {}
private:
    CInner inner;
}
Run Code Online (Sandbox Code Playgroud)

是的,在COuter::COuter( const CInner& )参数中具有与成员变量相同的名称.

在有效的VC++中 - VC++认为用参数初始化成员变量是合理的,这就是发生的事情 - CInner::inner用参数初始化.但是当使用GCC编译它时,它会以另一种方式解释:GCC CInner::inner 自身初始化,因此它未被初始化.

哪个编译器是对的?

c++ gcc initialization visual-c++

7
推荐指数
2
解决办法
6809
查看次数

标签 统计

c++ ×1

gcc ×1

initialization ×1

visual-c++ ×1