摘要:
这里整理一下C++与C#的一些区别:一、自定义对象例如类:class Test{public: Test(void); Test(const Test& t); ~Test(void);public: int i;}(1)、 C++:Test t:这样声明一个Test类型的对象,在栈中,这是会调用Test(void)构造函数;接下来就可以使用t了,如int j=t.i,这样是没问题的;Test t=new Test():在堆上生成一个Test对象,也会调用构造函数,接下来就可以使用t了,如int j=t-i,这样是没问题的(2)、 C#Test t,在C#中,这样声明的t是不能使用的 阅读全文
摘要:
考虑一下代码:class Test{public:Test(void);Test(const Test& t);~Test(void);public:int i;};Test::Test(){i=1;}Test::Test(const Test &t){this-i=(t.i+1);}Test::~Test(){}Test Func(Test t){int i=t.i+1;return t;}int _tmain(int argc, _TCHAR* argv[]){Test t;int i=t.i;Func(t);return 0;}注意红色标注的函数调用,调用了几次拷贝构造函数?两次:1次 阅读全文