程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> class-不明白以下結果是怎麼出來的,請求分析過程。康桑阿米達

class-不明白以下結果是怎麼出來的,請求分析過程。康桑阿米達

編輯:編程解疑
不明白以下結果是怎麼出來的,請求分析過程。康桑阿米達

#include
using namespace std;
class Base
{
friend void fun();
public:
Base(int data = 0)
:b(data)
{
cout << "Base()" << endl;
}
~Base()
{
cout << "~Base()" << endl;
}
static void show()
{
cout << "static show()" << endl;
}
void add()
{
a++;
}
static int a;
private:
int b;
};
int Base::a = 0;
class Derive :public Base
{
public:
Derive(int data = 0)
:d(data)
{
cout << "Derive()" << endl;
}
~Derive()
{
cout << "~Derive()" << endl;
}
void Add()
{
a++;
}
private:
int d;
};

int main()
{
Derive d;
d.show();
d.a = 2;
d.add();
d.Add();
cout << d.a << endl;
return 0;
}

Base()
Derive()
static show()
4
~Derive()
~Base()

最佳回答:


前兩個輸出應該沒問題吧(基類的構造函數函數優先被調用,和析構正好相反)
子類不能從父類繼承的有:
1. 構造函數
2. 拷貝構造函數
3. 析構函數
子類和父類是共享一個靜態成員變量的(不是繼承,因為靜態成員是沒有this指針的,是繼承不過來的)
所以打印出4應該能理解了吧

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved