日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c/c++整理--c++面向对象(2)

發(fā)布時間:2023/12/20 c/c++ 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c/c++整理--c++面向对象(2) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、看代碼寫結(jié)果——c++類成員的訪問

<span style="font-size:18px;">#include <iostream> using namespace std; #define public private<span style="white-space:pre;"> </span>(1) class Animal { public:<span style="white-space:pre;"> </span>(2) void MakeNoise(); }; int main() { Animal animal; animal.MakeNoise();<span style="white-space:pre;"> </span>(3) return 0; }</span>
(1)正確。把public宏定義為private。 (2)正確。定義public成員。注意:由于public已經(jīng)被定義為private,因此這里的MakeNoise()成員函數(shù)實際上是private的。 (3)錯誤。對象不能訪問類的私有成員函數(shù)

二、類成員的初始化

找錯 <span style="font-size:18px;">#include <iostream> using namespcae std; class Obj{ int i, j; public: Obj(int k) : j(k), i(j) { } void print() { cout<<i<<endl<<j<<endl; } }; int main() { Obj obj(2); obj.print(); }</span>
這里初始化順序與變量聲明順序一致,而不是按照出現(xiàn)在初始化列表中的順序。這里i在j之前聲明,所以構造時i也是在j之前被初始化,所以第8行先執(zhí)行i(j),這時j的值為隨機值,故i的值也是隨機值,然后執(zhí)行j(k),所以j為2.

三、看代碼寫結(jié)果——靜態(tài)成員變量的使用


<span style="font-size:18px;">#include <iostream> using namespace std; class Myclass { public: Myclass(int a, int b, int c); void GetNumber(); void GetSum(); private: int A; int B; int C; int Num; static int Sum; }; int Myclass::Sum = 0; Myclass::Myclass(int a, int b, int c) { A = a; B = b; C = c; Num = A+B+C; Sum = A+B+C; } void Myclass::GetNumber() { cout<< "Number = " << Num << endl; } void Myclass::GetSum() { cout<< "Sum = " << Sum << endl; } int main() { Myclass M(3, 7, 10), N(14, 9, 11); M.GetNumber(); N.GetNumber(); M.GetSum(); N.GetSum(); return 0; }</span> 靜態(tài)成員被當做該類型的全局變量。對于非靜態(tài)變量,每個類對象都有自己的復制品,而靜態(tài)成員對每個類的類型只有一個復制品。靜態(tài)成員只有一份,由該類類型共享。

總結(jié)

以上是生活随笔為你收集整理的c/c++整理--c++面向对象(2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。