在C ++中,类变量的初始化顺序与它们在类声明中显示的顺序相同。
看一下下面的代码:
#include<iostream>
using namespace std;
class Test {
private:
int y;
int x;
public:
Test() : x(10), y(x + 10) {}
void print();
};
void Test::print()
{
cout<<"x = "<<x<<" y = "<<y;
}
int main()
{
Test t;
t.print();
getchar();
return 0;
}
该程序打印正确的x值,但会打印y的一些垃圾值,因为y在x之前在类声明中出现之前被初始化。
因此,可以使用以下两个版本之一来避免上述代码中的问题。
代码一:
class Test {
private:
int x;
int y;
public:
Test() : x(10), y(x + 10) {}
void print();
};
代码二:
class Test {
private:
int y;
int x;
public:
Test() : x(y-10), y(20) {}
void print();
};
以上就是今天的全部内容了。每日分享小知识,希望对你有帮助~
另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!笔者这里或许可以帮到你~
C语言C++编程学习交流圈子,QQ群:765803539【点击进入】微信公众号:C语言编程学习基地
分享(源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!
编程学习视频分享: