struct 和 class
和c#裏不一樣,默認public ,相當於 c#public類型的class,c#裏struct是值類型
class則默認private
源文件中的函數調用
Point::getX() 代表作用域 Point下的成員函數getX();不同源文件中的類中調用其他類的函數時添加#include<對應的.h>就好了
{
}
構造函數
類名(){}
沒有返回值,但是可以有參數,可以重載,程序會在調用類的對象創建時候自動調用,且只會調用一次
析構函數
~類名(){}
沒有返回值,不可以有參數,不可以重載,程序會在調用類的對象銷燬時候自動調用,且只會調用一次
無參構造函數使用時不要加括號,否則會被當成函數聲明,Person p1;//無參調用構造
初始化列表初始化屬性
class Person{
Person ():a(10),b(20)
int a;
int b
}
class Person{
Person (int a1,int b1):a(a1),b(b1)
int a;
int b
}
this的使用
this-> 和c#裏this.的意義一致
友元
就是c#裏全局變量的意思
需要在頭文件.h中的這個類的第一行寫需要另一個類的友元類或者函數聲明,來調用聲明位置這個類的私有變量(private屬性)
聲明示例:
class 需要訪問私有屬性的類
{
friend 另一個類或者函數;//第一行
}
加號運算符重載
class Person
{
public:
Person operator+(Person &p)
{
裏面寫重載的內容
}}
繼承
- 公共繼承:可以被該類中的函數、子類的函數、其友元函數訪問,也可以由該類的對象訪問
class 子類:public 父類 子類也稱爲派生類,父類也稱爲基類
{} - 保護繼承 protected 可以被該類中的函數、子類的函數、以及其友元函數訪問,但不能被該類的對象訪問
- 私有繼承 pricate 只能由該類中的函數、其友元函數訪問,不能被任何其他訪問,該類的對象也不能訪問. 私有繼承之後,子類裏的所有變量保護級別都變成private級別,子類的子類訪問不到內部的全部內容
父類中私有內容,子類訪問不到