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++學習 2.5 string類C++
- 重學java之類的定義Java
- 學習javaScript必知必會(6)~類、類的定義、prototype 原型、json物件JavaScript原型JSON物件
- 類的定義
- 類定義介面
- C#學習筆記(一)--- 物件導向的思想和類的定義、物件的建立C#筆記物件
- 關於C++類的定義和物件的建立詳解C++物件
- 《Java核心技術 卷I》學習筆記10:使用預定義類Java筆記
- Python學習系列之類的定義、建構函式 def __init__Python函式
- 類定義(class definition)
- C++ 前置定義 Forward declarationC++Forward
- C++ 一些學習筆記(十二)類和物件-多型C++筆記物件多型
- C++ 的靜態成員變數為什麼一定要在類外定義C++變數
- C++學習日記:關於我決定開始學習C++的那些事C++
- MYSQL學習與實驗(一)——資料庫定義與操作MySql資料庫
- Java集合系列(一):集合的定義及分類Java
- Java類方法(定義一個工具類,儲存一些常用的方法)Java
- C++學習筆記-----類和建構函式C++筆記函式
- C++:使自定義類支援迭代器C++
- ts類介面約束定義
- c#抽象類的定義C#抽象
- ts類中屬性定義的另一種方式
- C++中巨集定義#define的用法C++
- c++繼承,隱藏(重定義)C++繼承
- 學會在 C++ 中使用變數:從定義到實踐C++變數
- 深度學習--PyTorch定義Tensor以及索引和切片深度學習PyTorch索引
- python學習總結之 函式定義defPython函式
- 碎片化學習Java(三)-- Java定義變數Java變數
- Python私有變數如何定義?Python學習教程!Python變數
- c++學習C++
- JTAG各類介面針腳定義及含義
- scala----常用方法 類的定義
- C++入門教程(12):定義函式C++函式
- 條件編輯及宏定義學習小結
- 物聯網學習教程—用typedef定義型別型別
- Xilinx約束學習筆記(二)—— 定義時鐘筆記
- C++類初學筆記C++筆記
- 【C++ Primer Plus】學習筆記--第10章 物件和類C++筆記物件