c++ 類的定義和使用
阿新 • • 發佈:2019-01-05
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
class A
{
private:
int n2;
int n1;
public:
A() :n2(34), n1(n2+1) {}
void Print() {
cout << "n1:" << n1 << ", n2: " << n2 << endl;
}
};
int main()
{
A a;
a.Print();
getchar();
return 1;
}
對上面程式碼稍微做調整: 將n1和n2兩個變數定義的順序互換一下
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
class A
{
private:
int n1;
int n2;
public:
A() :n2(34), n1(n2+1) {}
void Print() {
cout << "n1:" << n1 << ", n2: " << n2 << endl;
}
};
int main()
{
A a;
a.Print();
getchar();
return 1;
}
列印結果:
由此可以總結: 建構函式中,變數初始化的順序,是以變數定義的順序來定的,而不是簡單的以建構函式中變量出現的順序來定的
還可以使用有參的建構函式:
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
class A
{
private:
int n1;
int n2;
public:
A(int k1,int k2) :n2(k1), n1(k2) {}
void Print() {
cout << "n1:" << n1 << ", n2: " << n2 << endl;
}
};
int main()
{
A a(78,97);
a.Print();
getchar();
return 1;
}
列印結果:
下面對上面進行改造一下:
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
class A
{
private:
int n1;
int n2;
public:
A(int k1) :n2(k1), n1(n2) {}
void Print() {
cout << "n1:" << n1 << ", n2: " << n2 << endl;
}
};
int main()
{
A a(115);
a.Print();
getchar();
return 1;
}
列印結果:
通過最後一個例子,再次證明,變數初始化的順序是嚴格按照各個變數定義的先後順序來的,而不是簡單的依據各變數在建構函式中出現的先後順序來定的
下面兩種寫法是一個意思:
寫法一:
public:
A(int k1,int k2) {
n1 = k1;
n2 = k2;
}
寫法二:
public:
A(int k1,int k2) :n1(k1),n2(k2){}
FR:海濤高軟(hunk Xu)