相关疑难解决方法(0)

使用与构造函数参数相同的名称初始化成员变量,以及C++标准允许的成员变量?

我发现可以使用与下面示例中显示的名称相同的构造函数参数初始化成员变量.

#include <cstdio>
#include <vector>

class Blah {
    std::vector<int> vec;

public:
    Blah(std::vector<int> vec): vec(vec)
    {}

    void printVec() {

        for(unsigned int i=0; i<vec.size(); i++)
            printf("%i ", vec.at(i));

        printf("\n");
    }
};

int main() {

    std::vector<int> myVector(3);

    myVector.at(0) = 1;
    myVector.at(1) = 2;
    myVector.at(2) = 3;

    Blah blah(myVector);

    blah.printVec();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

带有参数的g ++ 4.4 -Wall -Wextra -pedantic没有提供任何警告并且工作正常.它也适用于clang ++.我想知道C++标准对此有何看法?是否合法并保证始终有效?

c++

67
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×1