//编绎是静态时确定,运行是动态时确定类型
#include
#include
class ATest
{
public:
//ATest();
ATest(int at);
//C++对象的"复制"只会在对象初始化时发生,复制构造函数也是一个构造函数所以只能用于
//对象的创建
ATest(const ATest& src);
//C++提供赋值操作符来用于对象之间的赋值
ATest& operator=(const ATest& rhs);
void print();
~ATest();
private:
int m_tvalue;
};
class ATestSub:public ATest
{
public:
// ATestSub();
void print();
private:
int mvalue;
};
ATest::ATest(int at)
{
m_tvalue = at;
}
ATest::ATest(const ATest& src)
{
m_tvalue = src.m_tvalue;
}
ATest& ATest::operator=(const ATest& rhs)
{
m_tvalue = rhs.m_tvalue;
return (*this);
}
ATest::~ATest()
{
}
void ATest::print()
{
printf("this ATestSub print\n");
}
/*
ATestSub::ATestSub()
{
mvalue = 0;
}*/
void ATestSub::print()
{
printf("this ATestSub print\n");
}
int main()
{
ATest a(5);//对象的初始化
ATest b(a);//对象对对象的初始化,调用复制构造函数
ATest c = a;//对象对对象的初始化,调用复制构造函数
ATest d(0);
d = c;//对象之间的赋值,调用赋值操作符
// ATestSub sa;
return 0;
}
阅读(723) | 评论(0) | 转发(0) |