小编ram*_*ram的帖子

如何将const ref返回到struct对象,使其所有嵌套结构也只读?

如何防止嵌套结构中的所有成员变量不可修改?

typedef struct A  
{  
    int a;  
    int b;  
}A1;  

typedef struct B  
{  
    A1* objA;  
}B1;  

class C  
{  
public:  
    const B& GetB() const { return objB; }  
    PopulateB();  

private:  
    B objB;  
};  

int main()  
{  
    C objC;
    objC.PopulateB();  
    const B& objB2 = objC.GetB();  
    objB2.objA->a = 3; // compiler allows this  
}  
Run Code Online (Sandbox Code Playgroud)

我只想要一个完全只读的结构,我希望这可以工作.(在这种情况下objB2)

c++

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

在.h文件包含在多个cpp文件中的类中定义整数静态const

A.h

class A  
{  
   private:
     static const int b = 50;
     int c[b];
 };

 A.cpp

 #include "A.h"
 const int A::b;

 C.cpp

 #include "A.h"
Run Code Online (Sandbox Code Playgroud)

编译器向我发出警告,说b多次定义,一个被忽略.我需要在类中定义它,因为我需要初始化数组.或者,我需要使用枚举方法来做到这一点.但我想知道这是否可行?

c++ one-definition-rule visual-c++ language-extension

0
推荐指数
1
解决办法
877
查看次数