淺談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 )默許拷貝結構函數成員變量簡略賦值
總結:只需你寫了結構函數,那末你必需用。
也再次印證了拷貝結構函數也是結構函數,必定要留意這個易錯點。