30天學習C 從入門到入土 Day03

2021-09-29 18:28:21 字數 4086 閱讀 6724

案例類、物件、成員變數、成員函式

類的基本特性:

封裝、繼承、多型

1. 把屬性和方法進行封裝

2. 對屬性和方法進行控制

private

public

protected

3.沒有訪問控制限定的成員變數 函式 預設是私有屬性

4. 類的內部和類的外部

public修飾成員變數和成員函式可以在類的內部和類的外部被訪問

private修飾成員變數和成員函式只能在類的內部被訪問

#include

using

namespace std;

class

mycircle

void

setr

(double r)

double

gets()

private

:double m_r;

double m_s;};

//類和指標

//類做函式引數

//類封裝了成員函式和成員變數

void

printmycircle01

(mycircle* mpc)

//類和引用

void

printmycircle02

(mycircle& mpc)

intmain()

5. class 和 struct關鍵字的區別

在用struct定義類時,所有成員的預設屬性為public

在用class定義類時,所有成員的預設屬性為private

6. 類的宣告和類的實現分開

類的宣告

myteacher.h

#pragma once

//只包含一次 防止重定義

//類的宣告

class

myteacher

;

類的實現

myteacher.cpp

#include

"myteacher.h"

//類的實現

//類域作用符 也相當於寫在了類的內部

void myteacher::

setage

(int age)

int myteacher::

getage()

mymain.cpp

#include

#include

"myteacher.h"

using

namespace std;

intmain()

設計立方體類(cube),求出立方體的面積和體積

求兩個立方體,是否相等(全域性函式和成員函式)

#include

using

namespace std;

//設計立方體類(cube),求出立方體的面積和體積

//比較立方體是否一樣

class

cube

intgeta()

intgetb()

intgetc()

intgets()

intgetv()

//②//問題丟擲 冗餘

intjudge

(cube& c1, cube& c2)

else

}//③

intjudge

(cube& c2)

else}}

;//①全域性函式

//1:same ; 0 : not same

intjudge

(cube& c1, cube& c2)

else

}int

main()

else

//③if

(c1.

judge

(c2)==1

)//通過c1物件的類 呼叫成員函式

else

//①if

(judge

(c1,c2)==1

)else

return0;

}

設計乙個圓形類(circle),和乙個點類(point),計算點在圓內部還是圓外

即:求點和圓的關係(圓內和圓外)

#include

using

namespace std;

class

point

intgetp_x()

intgetp_y()

};class

circle

intgetr()

intgetc_x()

intgetc_y()

intjudge

(point& p)

else}}

;int

main()

else

//2

double a =

abs(

(c.getc_x()

- p.

getp_x()

)*(c.getc_x()

- p.

getp_x()

)+(c.getc_y()

- p.

getp_y()

)*(c.getc_y()

- p.

getp_y()

));if

(c.getr()

> a)

else

return0;

}

把2中類的宣告和實現分開

circle.h

#pragma once

#include

"point.h"

class

circle

;

circle.cpp

#include

"circle.h"

#include

"point.h"

#include

void circle::

setcircle

(int r,

int x,

int y)

int circle::

getr()

int circle::

getc_x()

int circle::

getc_y()

int circle::

judge

(point& p)

else

}

point.h

#pragma once

class

point

;

point.cpp

#include

"point.h"

void point::

setpoint

(int x,

int y)

int point::

getp_x()

int point::

getp_y()

main.cpp

#include

#include

"circle.h"

#include

"point.h"

using

namespace std;

intmain()

else

return0;

}

學C 從入門到入土

題目大意 n m的矩陣,每個格仔上有乙個權值。求一條 1,1 到 n,m 的路徑,使 路徑上權值的最小值最大。樣列輸入 forest.in 2 27 5 3 4話不多說,直接上 include using namespace std const int maxn 1005 int n,m int a...

Linux從入門到入土

在此開個專題,用來記錄一下在使用linux中常用的命令。持續更新 常見錯誤 dpkg i 檔名cmake dcmake install prefix usr include ar 解包 tar zxvf filename.tar 打包 tar czvf filename.tar dirname gz...

cmake 從入門到入土

你或許聽過好幾種 make 工具,例如 這些 make 工具遵循著不同的規範和標準,所執行的 makefile 格式也千差萬別。這樣就帶來了乙個嚴峻的問題 如果軟體想跨平台,必須要保證能夠在不同平台編譯。而如果使用上面的 make 工具,就得為每一種標準寫一次 makefile 這將是一件讓人抓狂的...