C++學習 類定義(一)
前言
C++中,我們可以使用類定義自己的資料型別,用類來描述物件。一、C++類的定義
C++中類的定義
calss 類的名稱
{
public:
//建構函式、成員函式
private:
//資料成員
};
在類的定義中public是公共的,可以直接被外部訪問或者呼叫,private是私有的,不能被外部訪問呼叫。
#include<iostream>
#include<string>
using namespace std;
class Person
{
public:
Person(const string &nm):name(nm) //初始化
{
}
string getName() const
{
return name;
}
private:
string name;
};
int main()
{
Person a("bill");
a.getName();
return 0;
}
在類中的成員函式能夠函式過載,可以使用別名來簡化類,顯示指定inline成員函式。
#include<iostream>
#include<string>
using namespace std;
class Screen
{
typedef string::size_type size; // 使用別名來簡化類名稱
public:
char get() const
{
return contents[cursor];
}
char get(size r,size c) const //這邊對函式進行過載
{
size roe = r*width;
return contents[row+c];
}
private:
string contents;
size curdor;
size height,eidth;
}
int main()
{
Screen a;
a.get();
a.get(2,8);
return 0;
}
當函式寫在class中,表示這個函式是一個行內函數,當然也可寫在class外面,那就是外聯函式,當函式寫在class外面的時候可以通過inline將其 變為行內函數。
例如:
lass Screen
{
typedef string::size_type size; // 使用別名來簡化類名稱
public:
char get() const
{
return contents[cursor];
}
char get(size r,size c) const //這邊對函式進行過載
{
size roe = r*width;
return contents[row+c];
}
private:
string contents;
size curdor;
size height,eidth;
}
//可以改成
class Screen
{
typedef string::size_type size; // 使用別名來簡化類名稱
public:
char get() const;
char get(size r,size c) const;
private:
string contents;
size curdor;
size height,eidth;
}
inline char Screen::getchar() const
{
return contents[cursor];
}
inline char Screen::getchar(size r,size c) const
{
size roe = r*width;
return contents[row+c];
}
如果類只有申明沒有定義,那麼就不能使用它的建立物件。
例如
class Screen;
int main()
{
Screen a;
return 0;
}
//這樣是不行的
但是這個他是可以定義一個指標或者一個引用
class Screen;
int main()
{
Screen *a;//這個指標指向這個型別
Screen &b;
return 0;
}
在類定義中,可以使用另一個類的指標。例如:
class Screen;
class Person
{
public:
private:
Screen *ptr; //ptr指向Screen
Person *a; //指向它自己
};
相關文章
- C++中類及類的定義 (轉)C++
- 教你看懂C++類庫函式定義之一---HRESULT 巨集C++函式
- 重學java之類的定義Java
- C++學習 2.5 string類C++
- Protocol Buffers學習(1):定義一個訊息Protocol
- C語言/C++程式設計學習—資料結構—連結串列類的宣告及定義C語言C++程式設計資料結構
- 學習javaScript必知必會(6)~類、類的定義、prototype 原型、json物件JavaScript原型JSON物件
- python 學習--定製類Python
- c++中模板_類别範本的宣告和定義C++
- C#學習筆記(一)--- 物件導向的思想和類的定義、物件的建立C#筆記物件
- 類定義介面
- 《Java核心技術 卷I》學習筆記10:使用預定義類Java筆記
- 《從零開始學Swift》學習筆記(Day 25)——類和結構體定義Swift筆記結構體
- 關於C++類的定義和物件的建立詳解C++物件
- C++巨集定義#defineC++
- C++ 宣告與定義C++
- 資料結構學習(C++)——棧和佇列(定義和實現) (轉)資料結構C++佇列
- 資料結構學習(C++)——單連結串列(定義與實現) (轉)資料結構C++
- Python學習系列之類的定義、建構函式 def __init__Python函式
- php中定義類PHP
- 類定義(class definition)
- C++ 一些學習筆記(十二)類和物件-多型C++筆記物件多型
- MYSQL學習與實驗(一)——資料庫定義與操作MySql資料庫
- C++學習日記:關於我決定開始學習C++的那些事C++
- JAVA入門學習-學習如何自定義一個實體類,用於儲存一組資料。Java
- C++ 的靜態成員變數為什麼一定要在類外定義C++變數
- 一個C++巨集定義與列舉定義重複的編譯錯誤C++編譯
- C++ 前置定義 Forward declarationC++Forward
- C++模板的定製二:定製C++類 (轉)C++
- Activiti學習筆記三:管理流程定義筆記
- Flume學習——Flume中事務的定義
- Javascript 定義類或物件JavaScript物件
- 關於C++類方法函式指標的定義和使用方法C++函式指標
- Java集合系列(一):集合的定義及分類Java
- C++模板的定製三:部分定製C++類 (轉)C++
- Java類方法(定義一個工具類,儲存一些常用的方法)Java
- C++模板類複習C++
- 碎片化學習Java(三)-- Java定義變數Java變數