如下(重要和非凡的地方都有具體的注解):#include <iostream> using namespace std; class test { private://私有成員類外不能夠直接訪問 int number; public://共有成員類外能夠直接訪問 float socre; public: int rp() { return number; } void setnum(int a) { number=a; } };
下面我們來看一個例子,利用這個例子中我們要說明兩個重要問題:#include <iostream> using namespace std; int pp=0; class test { private: int number; public: float socre; int pp; public: void rp(); }; void test::rp()//在外部利用域區分符定義test類的成員函數 { ::pp=11;//變量名前加域區分符給全局變量pp賦值 pp=100;//設置結構體變量 }
void main() { test a; test b; a.rp(); cout<<pp<<endl; cout<<a.pp<<endl;
代碼如下: #include <iostream> using namespace std; class test { private: int number; public: float socre; int pp; public: int rp(int); }; int test::rp(int a)//在外部利用域區分符定義test類的成員函數 { number=100; return a + number; }
所以在main中如假如要定義ballscore類的對象就要在類名稱前加上class要害字 class ballscore jeff; 3.類型名稱隱藏了非類型名稱,看對上面代碼的分析int test; void main() { class test { float a; float b; }; test test; ::test=1; class ballscore jeff;
1.一個名字不能同時設置為兩種不同的類型class test { //... }; typedef int test; 這個就是錯誤的! 2.非類型名(變量名,常量名,函數名,對象名,枚舉成員)不能重名. test a; void a(); 就是錯誤的,因為a是一個test類的對象,它和函數a名稱重名了!
3.類型與非類型不在同一個名字空間上,可以重名,即使在同一作用域內,但兩者同時出現時定義類對象的時候要加上前綴class以區分類型和非類型名! class test { //..... }
int test
class test a;//利用class前墜區分,定義了一個test類的對象a 好了,到這里關于類的知識點我們已經學習完,希望大家多多練習 更多內容請看C/C++技術學堂 C/C++技術專題 Java編程開發手冊專題,或