淺談C++中的結構函數分類及挪用規矩。本站提示廣大學習愛好者:(淺談C++中的結構函數分類及挪用規矩)文章只能為提供參考,不一定能成為您想要的結果。以下是淺談C++中的結構函數分類及挪用規矩正文
結構函數的分類
這裡簡略地將C++中的結構函數分一下類,直接看上面的代碼表達,解釋在正文中:
#include <iostream> using namespace std; class Text { public: Text() // 無參數結構函數 { m_a = 0; m_b = 0; cout << "無參數結構函數" << endl; } Text(int a) // 有參數結構函數 { m_a = a; m_b = 0; cout << "無參數結構函數" << endl; } Text(int a, int b) // 有參數結構函數,有三種挪用辦法 { m_a = a; m_b = b; cout << "有參數結構函數" << endl; } // 賦值結構函數,也叫copy結構函數 Text(const Text& obj) { cout << "這也是結構函數" << endl; } ~Text(); private: int m_a; int m_b; }; int main() { // 1括號法 Text t1; // 挪用無參數結構函數 // 2等號法 Text t2 = (3, 4, 5, 6, 7); // C++對等號停止了增強,c++編譯器主動的挪用結構函數 // 3直接挪用結構函數,手動挪用結構函數 Text t3 = Text(1, 2); // 這裡觸及到匿名對象 return 0; }
結構函數挪用規矩研討
1)當類中沒有界說任何一個結構函數時,c++編譯器會供給默許無參結構函數和默許拷貝結構函數
2)當類中界說了拷貝結構函數時,c++編譯器不會供給無參數結構函數
這裡必定留意,當你只界說一個拷貝結構函數,在創立對象時是不克不及直接挪用無參數結構函數的。
3) 當類中界說了隨意率性的非拷貝結構函數(即:當類中供給了有參結構函數或無參結構函數),c++編譯器不會供給默許無參結構函數
當類中界說了一個多參數的結構函數,那末也是不存在無參數結構函數
4 )默許拷貝結構函數成員變量簡略賦值
總結:只需你寫了結構函數,那末你必需用。
也再次印證了拷貝結構函數也是結構函數,必定要留意這個易錯點。