案例類、物件、成員變數、成員函式
類的基本特性:
封裝、繼承、多型
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定義類時,所有成員的預設屬性為public6. 類的宣告和類的實現分開在用class定義類時,所有成員的預設屬性為private
類的宣告
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 這將是一件讓人抓狂的...