類和物件 內聯函式 過載

2021-07-10 09:42:57 字數 2728 閱讀 8567

類與結構體一樣,有相似之處,從今天開始學習。加油。

class student

protected:

private:

};

student stu1;

stu1.name="wendy"

; stu1.age=25

; stu1.print();

#include "iostream"

#include "vector"

#include "string"

using namespace std;

int main()

protected:

private:

};student stu1;

stu1.name="wendy";

stu1.age=25;

stu1.print();

return

0;}

在定義類的時候不能對成員賦值,類是一種資料型別,不占用記憶體,而變數的值需要記憶體來儲存。

類本身不佔記憶體,但是經過類宣告乙個物件,假設是空的,會佔據記憶體哦,請看:

在類內和類外定義函式是有區別的,類之內定義為內聯成員,之外定義不是。

首先,在類之內定義的函式預設為內聯函式,而在之外如果需要變成內聯函式,可以在之前加入inline關鍵字

記好,所謂定義是指後面寫了大括號

void print(){}

而宣告僅僅是 void print();

class student;

void student::print()

這樣子,即使函式在類之外定義,print()也成為內聯函式

c++通過public、protected、private三個關鍵字控制成員變數和成員函式的訪問許可權。

在類之內定義,都是可以互相訪問,沒有限制

在類之外定義無法訪問private和protected屬性的成員變數和成員函式,僅僅可以訪問public屬性的成員變數和成員函式。

#include "iostream"

#include "vector"

#include "string"

#include "queue"

#include "algorithm"

#include "unordered_map"

#include "stack"

using

namespace

std;

class student

void setage(int age1)

void setscore(float score1)

void say()

protected:

private:

char *name;

int age;

float score;

};int main()

c++函式可以設定預設值,設定之後,函式呼叫的時候可以忽略。但是一旦設定之後,後面的引數也必須設定為預設值。

過載:過載時指兩函式具有相同的函式名,但其中引數的型別或者個數不同,進行再定義,他們仍然是不同的函式。

#include "iostream"

#include "algorithm"

using

namespace

std;

class location

int valuex()

protected:

private:

int x,y;

};void location::init(int a,int b)

int main()

int valuex()

protected:

private:

int x,y;

};void location::init(int a,int b)

int main(){

location a;

a.init(99);

a.valuex(6);

cout

編譯出錯

內聯函式和函式過載

內聯函式 巨集可以避免函式呼叫帶來的開銷,但存在兩個問題 1 巨集沒有作用域,沒有型別檢測,另外定義巨集時,需要時刻注意加括號,除此之外,當傳入變數自增時,會出現不可避免的錯誤。2 c 中巨集不能作為類的成員函式,因為預處理器不能訪問類成員。內聯函式主要為了替代巨集,另外,類中的成員函式預設加了in...

函式介紹(內聯函式和函式過載)

過載概念 同乙個識別符號在不同的上下文有不同的意義 函式過載 同乙個函式名定義不同的函式 當函式名和不同的引數搭配時,表達的意思也不同 由函式名和函式引數列表決定的,與返回值無關係 函式過載至少滿足以下條件 引數個數不同 引數型別不同 引數順序不同 編譯器呼叫函式過載時的原則 將所有同名函式作為候選...

過載函式 內聯函式

兩個以上的函式,具有相同的函式名,但是形參的個數或者型別不同,編譯器會根據實參型別及個數的最佳匹配來自動確定呼叫哪乙個函式。int add int x,int y float add float x,float y int add int x,int y,int z float add float ...