c++中关于构造函数的问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 06:07:31
//各位高人 我是新手呀 不太懂的 麻烦指正呀!新人不容易呀!谢谢!!
//operator+。

#include<iostream.h>

class Counter
{
public:
Counter();
Counter(int initialValue);
~Counter(){}
int GetItsVal()const{return itsVal;}
void SetItsVal(int x){itsVal=x;}
Counter operator+(const Counter &);

private:

int itsVal;

};

Counter::Counter(int initialValue):
itsVal(initialValue)
{}

Counter::Counter():
itsVal(0)
{}

Counter Counter::operator+(const Counter & rhs)
{
return Counter(itsVal+rhs.GetItsVal());
}

int main()
{
Counter varOne(2),varTwo(4),varThree;//初始的赋值
varThree=varOne+varTwo;
cout<<"varOne: "<<varOne.GetItsVal()<<endl;
cout<<"varTwo: "<<varTwo.GetItsVal()<<endl;
cout<<"varThree: "<<varThree.GetItsVal()<<endl;

varTwo(10);形式是构造函数,只能在初始化的时候调用,这是C++特定规定的,构造函数决定了一些初始特性,一个对象产生就像人出生的时候,只能构造一次,就像人不能出生两次的道理,所以不能调用多次。。。

因为构造函数是初始化时用的

这个类似于一个过度用的,当你调用这一个类的时候,它会先调用这个类的构造函数,这一点很重要。

二楼说的很形象,构造就是出生,只能一次...不能用构造来修改已经存在的对象的成员.就象你不能觉得你长的不帅,让你妈再生你一次一样