【C++課程學習】:類和對象(上)(類的基礎詳細講解)

🎁個人主頁:我們的五年

🔍系列專欄:C++課程學習

🎉歡迎大家點贊👍評論📝收藏?文章

?

?

目錄

🍟1.1類的引出:

🍟1.2類的結構:

🍟1.3類的兩種定義方法:

🍟1.4成員變量命名的建議:


?前言:

C語言是一門面向過程的語言,而C++是一門面向對象的語言。

1.C語言:

關注的是過程,解決提出的問題要逐步調用函數來解決。

2.C++:

C++是面向對象,關注的是對象,其他的有相應的方法

🍟1.1類的引出:

類是在結構體上引出來的,在C語言中,結果體只可以里面只能有數據。而在C++中,結構體中可

以定義函數。而C++中就這把這變成的類(class),但是與結構體還是有區別的,比如:

1.結構體里面的數據全部是公開(public)的,因為C++要兼容C語言。定義了一個結構體,我們可以直接在main函數訪問結構體里面的數據。

2.類如果什么都不寫的情況下,數據都是私有的(private)。

3.C++中的結構體也不需要加struct。

#include<iostream>
using namespace std;
//結構體
struct Data1{int _year;int _month;int _day;
};
//類
class Data2{
public:int _year;int _month;int _day;
};int main()
{Data2 a;a._year = a._month = a._day = 1;//Data1 a;//a._year = a._month = a._day = 1;cout << a._year<<endl;
}


🍟1.2類的結構:

class classname{

? ? ? ? //類體:

? ? ? ? //1.成員函數

? ? ? ? //2.成員變量

};? ? ? ? //和結構體一樣,后面有;

class classname{//類體://1.成員函數//2.成員變量};? ? ? ? //和結構體一樣,后面有;

這些東西大家看看就行:class類的關鍵字,classname類的名稱,{}類的主體,還有后面的封號;;

大家需要看的就是:

類里面的內容分為兩種:

1.類里面的數據叫成員變量,或者類的屬性,但是我覺得,把它看成類的屬性更能突出面向對象,

關注的對象。

2.類里面的函數叫成員函數,或者類的方法。還是一樣的,我覺得,類的方法更能突出其面向對象的特點。

🍟1.3類的兩種定義方法:

兩種方法的主要區別也就是,是否類的方法都在類里面進行聲明和定義。

1.類的方法都在類里面聲明和定義:

這種情況下,編譯器會把函數當成內聯函數進行處理。

#include<iostream>
using namespace std;class Data {
public://聲明和定義都在類里面void print() {cout << "print()" << endl;}
private:int _data;
};int main()
{Data a;a.print();
}

2.類的方法的聲明和定義分開,聲明在類里面,定義不在類里面:
聲明放在.h文件種,定義在.cpp文件中。

#include<iostream>
using namespace std;class Data {
public://聲明void print();
private:int _data;
};//定義:
void Data::print() {cout << "聲明和定義分離" << endl;
}int main()
{Data a;a.print();
}

🍟1.4成員變量命名的建議:

一般我們介意在類的變量名稱中加入一些符號以區分。

一般的就是在名字前面加_,或者在名字后面加_。不同的公司有不同的命名方式。

比如:

#include<iostream>
using namespace std;class Data {
public://聲明void print();
private://在data前面加上_int _data;
};//定義:
void Data::print() {cout << "聲明和定義分離" << endl;
}int main()
{Data a;a.print();
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/22912.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/22912.shtml
英文地址,請注明出處:http://en.pswp.cn/web/22912.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LeetCode-82. 刪除排序鏈表中的重復元素 II【鏈表 雙指針】

LeetCode-82. 刪除排序鏈表中的重復元素 II【鏈表 雙指針】 題目描述&#xff1a;解題思路一&#xff1a;用一個cur即可實現去重cur.next cur.next.next背誦版&#xff1a;解題思路三&#xff1a;0 題目描述&#xff1a; 給定一個已排序的鏈表的頭 head &#xff0c; 刪除原始…

【java前端課堂】02_類和方法的定義區別

目錄 簡介&#xff1a; 類 方法 類和方法之間的主要區別如下&#xff1a; 定義與結構&#xff1a; 實例化&#xff1a; 作用范圍&#xff1a; 生命周期&#xff1a; 下面是一個簡單的Java類和方法示例&#xff1a; 簡介&#xff1a; 類 在Java&#xff08;以及許多其他面向…

十大排序-冒泡排序

算法原理如下&#xff1a; 給出一組數據&#xff1b;比較相鄰的元素。如果第一個比第二個大&#xff0c;互換兩個值。對每一組相鄰元素同樣方式比較&#xff0c;從開始的第一組到結束的最后一組。最后的元素會是最大數。除了排列好的最大數&#xff0c;針對所有元素重復以上步…

臺式機ubuntu22.04安裝nvidia驅動

總結一個極簡易的安裝方法 正常安裝ubuntu 22.04正常更新軟件 sudo apt update sudo apt upgrade -y參考ubuntu官方網站的說明https://ubuntu.com/server/docs/nvidia-drivers-installation#/ # 首先檢查系統支持驅動的版本號 sudo ubuntu-drivers list我顯示的內容如下&…

前端應用開發實驗:組件應用

目錄 實驗目的相關知識點實驗內容及要求代碼實現效果 實驗目的 &#xff08;1&#xff09;掌握組件的創建方法&#xff08;全局組件、局部組件&#xff09;&#xff1b; &#xff08;2&#xff09;重點學會組件之間的數據傳遞&#xff08;prop傳值、自定義事件&#xff09;&am…

SAP 用事務碼SQVI 制作簡單的ALV報表

我們在項目實施和運維的過程中經常會接到用戶的很多需求&#xff0c;有很大的一部分需求可能都是一些報表的需求&#xff0c;有些報表的需求需要開發人員使用ABAP編寫&#xff0c;但是有些報表僅僅只是兩個或者多個報表的表關聯就可以實現。這個時候我們就可以用SQVI這個事物代…

揭秘!寵物空氣凈化器對抗貓毛過敏,效果真的超乎想象?

貓毛過敏困擾著不少愛貓人士。盡管網絡上充斥著各種緩解策略&#xff0c;但究竟哪種方法效果最佳&#xff1f;作為一位經驗豐富的寵物主人&#xff0c;我搜集了大量信息&#xff0c;對比了幾種主流的貓毛過敏應對策略&#xff0c;比如藥物治療、日常清潔和寵物空氣凈化器的使用…

阿里云私有CA使用教程

點擊免費生成 根CA詳情 啟用根CA -----BEGIN CERTIFICATE----- MIIDpzCCAogAwIBAgISBZ2QPcfDqvfI8fqoPkOq6AoMA0GCSqGSIb3DQEBCwUA MFwxCzAJBgNVBAYTAkNOMRAwDgYDVQQIDAdiZWlqaW5nMRAwDgYDVQQHDAdiZWlq aW5nMQ0wCwYDVQQKDARDU0REMQ0wCwYDVQQLDARDU0REMQswCQYDVQQDDAJDTjA…

單列集合--ArryList、LinkedList、Set

使用IDEA進入某個類之后&#xff0c;按ctrlF12,或者alt數字7&#xff0c;可查看該實現類的大綱。 package exercise;import java.util.HashSet; import java.util.Iterator; import java.util.Set; import java.util.function.Consumer;public class Demo3 {public static void…

開放式耳機哪個牌子好?2024年度熱門機型推薦榜單分享!

隨著音樂技術的不斷革新&#xff0c;開放式耳機已成為音樂發燒友們的首選。從最初的簡單音質&#xff0c;到如今的高清解析&#xff0c;開放式耳機不斷進化。音質純凈&#xff0c;佩戴舒適&#xff0c;無論是街頭漫步還是家中細細靜聽&#xff0c;都能帶給你身臨其境的音樂體驗…

iOS18 新變化提前了解,除了AI還有這些變化

iOS 18即將在不久的將來與廣大iPhone用戶見面&#xff0c;這次更新被普遍認為是蘋果歷史上最重要的軟件更新之一。據多方報道和泄露的消息&#xff0c;iOS 18將帶來一系列全新的功能和改進&#xff0c;包括在人工智能領域的重大突破、全新的設計元素以及增強的性能和安全性。現…

make 中 DESTDIR 和 --prefix 的區別

1.configure + make./configure --prefix=/usr make -j8make install DESTDIR=/home2.meson + ninja meson build --prefix=/usr DESTDIR=/home ninja install 這兩個示例分別展示了如何使用兩種流行的構建系統(configure + make 和 meson + ninja)來編譯和安裝軟件,并…

AI教我變得厲害的思維模式01 - 成長型思維模式

今天和AI一起思考如何培養自己的成長性思維。 一一核對&#xff0c;自己哪里里做到&#xff0c;哪里沒有做到&#xff0c;讓AI來微調訓練我自己。 成長性思維的介紹 成長性思維&#xff08;Growth Mindset&#xff09;是由斯坦福大學心理學教授卡羅爾德韋克&#xff08;Carol…

鋇錸技術BL103助力實現PLC到OPC-UA無縫轉換新高度

在工業4.0的大背景下&#xff0c;信息物理系統和工業物聯網的融合日益加深&#xff0c;推動了工業自動化向更高層次的發展。OPC UA作為一種開放、安全、跨平臺的通信協議&#xff0c;在實現不同設備、系統間數據交換和互操作性方面扮演了核心角色。鋇錸技術公司推出的BL103 PLC…

調用訊飛星火API實現圖像生成

目錄 1. 作者介紹2. 關于理論方面的知識介紹3. 關于實驗過程的介紹&#xff0c;完整實驗代碼&#xff0c;測試結果3.1 API獲取3.2 代碼解析與運行結果3.2.1 完整代碼3.2.2 運行結果 3.3 界面的編寫&#xff08;進階&#xff09; 4. 問題分析5. 參考鏈接 1. 作者介紹 劉來順&am…

Vitis HLS 學習筆記--通道的FIFO/PIPO選擇

目錄 1. 簡介 2. 代碼詳解 2.1 FIFO 通道示例 2.1.1 配置默認通道 2.1.2 kernel 代碼 2.1.3 綜合報告 2.1.4 depth 32 解析 2.1.5 FIFO 通道分類 2.2 PIPO 2.2.1 配置默認通道 2.2.2 kernel 代碼 2.2.3 綜合報告 2.2.4 PIPO 通道分類 3. 綜合對比 3.1 數據類…

docker安裝及常見命令

歷史版本docker下載 https://docs.docker.com/desktop/release-notes/#upgrades-17 docker start 容器id # 啟動容器 docker restart 容器id # 重啟容器 docker stop 容器id # 停止當前運行的容器 docker kill 容器id # 強制停止當前容器…

2024年帶你揭秘FL Studio 21破解版,2024年最新FL21內置漢化破解補丁

截止目前&#xff0c;FL Studio最新版是FL Studio 21.2.3.4004版本&#xff0c;想必很多朋友已經迫不及待了&#xff0c;那么今天這篇文章我將帶大家詳細的介紹FL Studio 21.2.3 Build 4004新特點以及如何下載&#xff0c;安裝和激活。 PS.本次為你帶來的是fl studio21破解版&a…

針對多標簽(Multi-label)任務的經典算法

前言 如果你對這篇文章感興趣&#xff0c;可以點擊「【訪客必讀 - 指引頁】一文囊括主頁內所有高質量博客」&#xff0c;查看完整博客分類與對應鏈接。 多標簽&#xff08;Multi-label&#xff09;任務是分類任務的擴展版&#xff0c;即每個樣本不再僅屬于一個類別&#xff0…

MySQL是怎么保證原子性的(undo log日志相關)

MySQL是怎么保證原子性的&#xff1f; 事務的原子性就是&#xff1a;一個事物要么全部執行成功&#xff0c;要么全部執行失敗。MySQL 主要是利用 undo log&#xff0c;也就是回滾日志來實現原子性。 平常我們在對數據進行增刪改時&#xff0c;InnoDB 除了會記錄 redo log&…