一个C++中初始化类中成员的问题

来源:百度知道 编辑:UC知道 时间:2024/06/26 01:20:52
源程序如下:

#include<iostream>
using namespace std;

class Test
{
private:
int a=1;
int b=2;
public:
void add();
};

void Test::add()
{
cout<<"a+b= "<<a+b<<endl;
}

void main()
{
Test t1;
t1.add();
}
但是,这样是错的,会提示a,b不是静态数据成员,不能在类中初始化。
我想请问下,如何在不把成员声明为静态数据成员的情况下,初始化该成员喃???
谢谢了哈!

用构造函数啊
Class Test{
..
Test():a(1),b(2){}
..
}

请参考
#include<iostream>
using namespace std;

class Test
{
private:
int a;
int b;
public:
Test(int x,int y)
{
a=x;
b=y;
}
void add();
};

void Test::add()
{
cout<<"a+b= "<<a+b<<endl;
}

void main()
{
Test t1(1,2);
t1.add();
}

有点千万记住,定义类的时候是不消耗资源的,所以定义类数据的时候不用初始化,楼上几位的声明方法都可以使用;

切,老师教过你类中定义变量同时可以同时初始化吗?在构造函数里初始化呀

在类里面加入
Test():a(1),b(2){};
之后声明a,b的时候别赋值就行