【小白学习C++ 教程】十一、C++类中访问修饰符
生活随笔
收集整理的這篇文章主要介紹了
【小白学习C++ 教程】十一、C++类中访问修饰符
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
@Author:Runsen
類是面向對象編程。它是一種用戶定義的數據類型,它擁有自己的數據成員和成員函數,可以通過創建該類的實例來訪問和使用它們。
一個對象是一個類的實例。定義類時,不會分配內存,但在實例化(即創建對象)時會分配內存。
類是在 C++ 中使用關鍵字 class 后跟類名定義的。類的主體在大括號內定義,并以分號結尾。
語法:
ClassName ObjectName;訪問修飾符
類共有三種訪問修飾符:public、private 和 protected。
在上面的程序中,數據成員radius被聲明為 public,因此它可以在類外部訪問,因此允許從 main() 內部訪問。
報錯如下:
在函數“int main()”中: 11:16:錯誤:'double Circle::radius' 是私有的雙半徑;^ 31:9:錯誤:在此上下文中obj.radius = 1.5;^上述程序的輸出是編譯時錯誤,因為我們不允許直接在類外訪問類的私有數據成員。然而嘗試訪問 obj.radius,radius 是一個私有數據成員,我們得到一個編譯錯誤。
但是,我們可以使用類的公共成員函數間接訪問類的私有數據成員。
#include<iostream> using namespace std;class Circle { // private data memberprivate:double radius;// public member function public: void compute_area(double r){ // member function can access private// data member radiusradius = r;double area = 3.14*radius*radius;cout << "Radius is: " << radius << endl;cout << "Area is: " << area;}};// main function int main() { Circle obj;obj.compute_area(1.5);return 0; }注意:這種通過繼承的訪問可以根據繼承的模式改變派生類中基類元素的訪問修飾符。
#include <iostream> using namespace std;// base class class Parent { protected:int id_protected;};class Child : public Parent { public:void setId(int id){id_protected = id;}void displayId(){cout << "id_protected is: " << id_protected << endl;} };// main function int main() {Child obj1;obj1.setId(81);obj1.displayId();return 0; }id_protected 是:81成員函數
定義成員函數有兩種方式:
- 內部類定義
- 外部類定義
要在類定義之外定義成員函數,我們必須使用作用域解析:: 運算符以及類名和函數名。
#include <iostream> using namespace std; class Geeks {public:string geekname;int id;void printname();void printid(){cout << "Geek id is: " << id;} };void Geeks::printname() {cout << "Geekname is: " << geekname; }int main() {Geeks obj1;obj1.geekname = "Runsen";obj1.id=22;// call printname()obj1.printname();cout << endl;// call printid()obj1.printid();return 0; }總結
以上是生活随笔為你收集整理的【小白学习C++ 教程】十一、C++类中访问修饰符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u盘插上电脑怎么没有反应了 电脑无法识别
- 下一篇: 【小白学习C++ 教程】十二、C++面向