c++筆記3

wuqindeyunque發表於2018-02-10

參考書籍:c++大學教程(第九版)

6.c++中類的函式名後加const,代表這個函式不會修改類的成員資料,若不小心加個修改資料的語句就會報錯。這可以幫助有效的定位錯誤。

7.

istream& getline (istream&  is, string& str);
istream& getline (istream&  is, string& str, char delim);

第一個是從輸入流中讀取字元到str中,以換行符為分隔符

第二個是從輸入流中讀取字元到str中,delim是自己定義的換行符

例子:

#include<iostream>
#include<string>
using namespace std;
class gradebook
{
public:
	void displaymessage(string coursename)
	{
		cout<<"welcome to the gradebook for\n"<<coursename<<"!"<<endl;
	}
};
void main()
{
	string coursename;
	cout<<"please input course name:\n";
	getline(cin,coursename,';');
	gradebook mygradebook;
	mygradebook.displaymessage(coursename);
}

8.explicit宣告建構函式可以避免單引數建構函式的隱式轉換。

參考部落格:http://blog.csdn.net/e3399/article/details/7610430

不加explicit:

#include<iostream>
#include<string>
using namespace std;
class gradebook
{
public:
	gradebook(string name)
	{
		coursename=name;
	}
	void displaymessage()
	{
		cout<<"welcome to the gradebook for "<<coursename<<"!"<<endl;
	}
private:
	string coursename;
};
void main()
{
//	string coursename;
//	cout<<"please input course name:\n";
//	getline(cin,coursename,';');
	gradebook mygradebook="c++";
	mygradebook.displaymessage();
}


加了explicit則會報錯:



9.建構函式函式名後面可以跟冒號來初始化類

  

 explicit gradebook(string name)
        :coursename(name)
    {
        //相當於coursename=name;
    }

10.為了保證前處理器能正確找到標頭檔案,一般把c++標準庫的標頭檔案名放在<>裡,而把自己定義的放在""中

11.在UML中,每個類在類圖中建模為具有三個部分的矩形,上部包含類名,中部包含屬性,下部包含類的操作。



相關文章