前言:
前三篇物件導向類別Class、物件Object、建構子Constructor歡迎接續觀看
之前講了好多關於C++的Class是什麼這是物件導向基本的重點。
怎麼用為什麼要用,趕快來練習一下吧~
之前了解了物件導向的規則,接下來要進入如何使用,順便學到如何做資料轉換。
這篇練習的是物件導向最基本的重點,variable要保持private,不然會不小心改到、容易混在一起數值也容易被更動到。
那放在private裡面要如何取用?做成method放在public區域。
這個題目就是在解釋常規下如何設定、取用class中的variables。
#include <sstream>
。stringstream ss;
ss << age;
string a;
,把ss 輸入進 a,ss >> a;
可以把stringstream想像成中間的轉換器,int >> 轉換器
,然後轉換器 >> string
。
同理也可以把string轉成int。
我的code:
class Student{
private:
int age, standard;
string first_name, last_name;
public:
void set_age(int age){
this->age = age;
}
void set_standard(int standard){
this-> standard = standard;
}
void set_first_name(string first_name){
this-> first_name = first_name;
}
void set_last_name(string last_name){
this->last_name = last_name;
}
int get_age(){
return age;
}
string get_last_name(){
return last_name;
}
string get_first_name(){
return first_name;
}
int get_standard(){
return standard;
}
string to_string(){
stringstream ss;
ss << age<<","<< first_name<<","<<last_name <<","<< standard;
return ss.str();
;
}
};
我們明天會聊開一篇專門來聊pointer和this,在這邊可以簡單想成如下:
還記得當我們declare variable時等同請電腦空出一個記憶體空間嗎?因為variable名字不能重複,不然電腦不知道我們指的是哪個記憶體空間,一堆箱子標籤都是相同的根本無法區分。
所以這裡的this就像是記號,告訴電腦“嘿!這個箱子是我指的那個箱子”。
或是直接放個不同的variabl name,也可以避免以上問題。(小缺點就是等程式變複雜了,之後要維護或修改可能會忘記到底指的是哪個variable)
Variable跟記憶體關係
就是跟電腦說“嘿,幫我在記憶體那邊空出一些空間,我要放東西,謝謝。”
例如打int age = 5;,等於跟電腦說,哈囉,幫我空出一個4 bytes的地方,這個空間叫age,裡面放5這個數字。
如果還不知道要放什麼,也可以打int age;,跟電腦說我還不知道放什麼,請幫我清出一個4 bytes空白叫做age的空間,等等再決定放什麼。
(引用自Day 12 - C++ 物件導向1 - 類別Class,那個book b1是什麼? object又是什麼?)
今天比較短,中場休息一下,除了物件導向的系列,接下來會以虛擬貨幣project做主軸慢慢把其他重要的東西介紹完。
Reference: geeksforgeeks, wikipedia, stackOverflow, 感謝HackerRank的題目