112讲 类作为对象的成员–静态成员–
内容纲要

file

代码如图:
Tip: 在类中 调用另外的类的初始化需要使用 “ 初始化列表 ” ,不知道为何使用传统显式/隐式定义会报错。。

file

#include <iostream>
#include "string"
using namespace std;
class Phone {
public:
    Phone(string pName) {
        cout << "Phone构造函数被调用" << endl;
        m_PName = pName;
    }

    ~Phone() {
        cout << "    Phone析构函数被调用 喵~~" << endl;
    }

    string m_PName;
};

class Person {
public:
    Person(string m_Name ,string pName) :name(m_Name),phone(pName)
    {
        cout << "Person构造函数被调用" << endl;
        cout << name << " 买了一部 " << phone.m_PName << " 手机" << endl;
    }

    ~Person() {
        cout << "    Person析构函数被调用 喵~~" << endl;
    }

    //Person(string m_Name, string pName){   //这里会报错
    //  name = m_Name;
    //  //phone = Phone(pName);
    //  phone = Phone(pName);
    //}

    string name;
    Phone phone ;
};

void main() {
    Person("张三", "苹果");
}

构造顺序:
当其它类对象作为本类成员,构造时 构造类对象,再构造自身,
析构的顺序与构造相反!!!!!

file

静态成员

静态成员就是在成员变量和成员函数前加上关键字 static,称为静态成员
静态成员分为:

  • 静态成员变量:

    • 所有对象共享一份数据
    • 在编译阶段分配内存
    • 类内声明,类外初始化
  • 静态成员函数

    • 所有对象共享一个函数
    • 静态成员函数只能访问静态成员变量

静态成员也是有访问权限的,但是依旧要遵循类内声明,类外初始化。

静态成员变量

#include <iostream>
using namespace std;
//静态成员变量
class Person {
public:
    //1. 所有对象都共享同一份数据。
    //2. 编译阶段就分配内存
    //3. 类内声明,类外初始化。
    // 
    static int m_A;

    //静态成员变量也是有访问权限的。
private:
    static int m_B;
};

int Person::m_A = 100;
int Person::m_B = 200;

void test01(){

    Person p;

    //静态成员变量 不属于某一个对象上,所有对象都共享同一份数据。
//因此静态成员变量有两种访问方式
//1. 通过对象进行访问
    cout << p.m_A << endl;

//2. 通过类名进行访问。
    cout << Person::m_A << endl;

    //访问私有的静态成员变量?
    //cout << Person::m_B << endl;//报错。访问权限受限

}

void main(){
    test01();
}

静态成员函数

  • 所有对象共享一个函数。
  • 静态成员函数只能访问静态成员变量。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇