01, c++中的 struct 和c語言的區別
a) c++中的struct 不僅可以宣告成員變數, 還可以宣告成員函式
struct person
};
b) c++中宣告乙個 struct 物件
//c++中就不用再寫成 struct person t_man 了
person t_man = ;
在c語言中要寫成struct person t_man;
, 而在c++中省略了struct
02, 宣告類的關鍵字 class, struct 也可以宣告類
類的三個區間:public
protected
private
類的作用域: 類定義的部分和類的成員函式定義的部分
類內和類外: 類的作用域內/類的作用域外
類中的內聯函式, 必須宣告定義在乙個檔案, 也可以直接在類中定義
類中的函式過載
this 指標
student.h
class student //宣告乙個學生類
//類中的函式過載, 預設引數必須寫在函式定義處
/*void setinfo(const string &t_name);*/
void setinfo(const
string & t_name = "jack", const
int t_age = 21, const
int t_hight = 180);
類的成員函式可以訪問類的所有成員
void test_fun1()
//受保護的
protected:
int weight;
char tel[12]; //這2個成員變數屬於protected區,是受保護的
int getweight();
//私有的
private:
int salary; //這個成員變數屬於private區,是私有的
int getsalary();
};
student.cpp
#include "student.h"
#include
using
namespace
std;
//this 指標, 存放類物件的首位址
//this 指標是隱藏在成員函式中的第乙個形參
// return this->name;
string student::getname()
//void student::setinfo(const string & t_name)
//void student::setinfo(const
string & t_name, const
int t_age, const
int t_hight)
main.cpp
#define _crt_secure_no_warnings 1
#include
#include
#include "student.h"
using
namespace
std;
//1, c++中的struct 不僅可以宣告成員變數, 還可以宣告成員函式
struct person
};int main()
; t_man.print();
//宣告乙個類的物件
student t_student;
t_student.setinfo("張三");
cout
<< endl;
t_student.print();
t_student.setinfo("李四", 88);
cout
<< endl;
t_student.print();
student& t_student01 = t_student;//類的引用
t_student01.name;
t_student.getname();
student* p_student = &t_student;//類的指標
p_student->age;
p_student->getname();
t_student.age;//在類外, 類的物件, 引用, 指標, 只能訪問類的public成員
//t_student.weight;//在類外, 無法訪問類的protected成員
//t_student.salary;//在類外, 無法訪問類的private成員
t_student.getname();
cout
<< endl;
cout
<< "t_student address: "
<< &t_student << endl;
cout
<< endl;
system("pause");
return
0;}
c 結構和類的相關介紹
我們不關心物件內部是怎麼實現的,我們關心的是他提供給我什麼介面,有什麼操作。從技術上來說,結構屬於值型別,而類屬於引用型別。結構不能指定繼承基類型別,類可以。不過結構和類都能實現介面。一 應用場合 結構的應用場合 一 自定義資料型別,資料成員是公開的,提供工具函式。二 抽象的資料型別,資料成員是密封...
C 結構體和類介紹
include stdafx.h include include using namespace std struct test 定義乙個名為test的結構體 void main movie 可以在宣告struct的時候宣告乙個struct例項,這個有啥意思呢?int main dates char...
OpenCV中Mat類的介紹和使用
自從opencv產生以來,其函式庫一直是基於c介面構建的,因此在最初的幾個opencv版本中,一般使用名為iplimage的c語言結構體在記憶體中儲存影象。直到現在,仍然出現在大多數的舊版教程中。對於opencv1.x時代的基於c語言介面而建的影象儲存格式iplimage 如果在退出前忘記relea...