相关疑难解决方法(0)

在C++标识符中使用下划线有哪些规则?

在C++中通常用某种前缀命名成员变量来表示它们是成员变量而不是局部变量或参数.如果你来自MFC背景,你可能会使用m_foo.我myFoo偶尔也见过.

C#(或者可能只是.NET)似乎建议只使用下划线,如_foo.这是否允许C++标准?

c++ standards naming-conventions c++-faq

906
推荐指数
4
解决办法
24万
查看次数

传递对C++构造函数的引用并将它们保存为引用或非引用类型

我想知道这些是否基本相同.

class ExampleClass {
    public:
        ExampleClass(Object& newObj) : obj(newObj) {}
    private:
        Object obj;
}

class ExampleClass2 {
    public:
        ExampleClass2(Object& newObj) : objReference(newObj) {}
    private:
        Object& objReference;
}
Run Code Online (Sandbox Code Playgroud)

所以这不适用于任何一个类吗?

ExampleClass* getExampleObject() {
    Object obj;
    return new ExampleClass(obj);
}

ExampleClass2* getExample2Object() {
    Object obj;
    return new ExampleClass2(obj);
}

void main() {
    ExampleClass* ec = getExampleObject();
    ExampleClass2* ec2 = getExample2Object();
    //Do something involving the member objects of ec and ec2
}
Run Code Online (Sandbox Code Playgroud)

那么在两个getExampleObject方法之后,成员对象是否无效?ExampleClass的构造函数不保存其构造函数中引用的对象的副本吗?

c++ constructor reference pass-by-reference

5
推荐指数
1
解决办法
8459
查看次数