C++学习小记
??????很久没有写技术博客了,年后过来没有多少编程的工作,就这样一直荒废到现在,强烈的离职冲动充斥在我心里,可又不甘心这么就走了,慢慢拖拖做了一年的游戏还没有上线,如果就这么走了那可真是白玩了!回想这一年,游戏改版多次,翻做了很多次,自己也是只有编程半年,然后玩了半年!最近特别荒废,每天上班就是玩游戏,看新闻,玩微博,似乎很惬意,可谁知我心里的空虚!
????? 这段时间在复习学习C++,虽然大学学过,不过都差不多还老师了,现在复习,也没有多大难度,只是知识点太多,想掌握全面又不太可能,看完了C++基础教材,最近在看Effective C++,讲的很好,下面记录一点,这一点和Java很不同!
?????
#include<iostream>using namespace std; class Stu{public: Stu(){ cout<<"init"<<endl; } Stu(Stu &s){ cout<<"copy constructor"<<endl; } ~Stu(){ cout<<"deconstructor"<<endl; }private: string s1; string s2; };Stu getstu(Stu s){return s;};int main(){ Stu s1; getstu(s1); //system("pause"); return 0; }
??? 这段代码运行时的结果是啥?
?
写道init?? 很惊讶吧,在Java里,对象只会被创建一次,函数的传值都是引用,在C++里变成了对象的拷贝复制,返回也是复制,所以变成了构造一次,拷贝构造2次的结果。可见,在C++里对象传值最好用引用方式。
?