对面向对象技术(C ++类)的初步了解,

电脑杂谈  发布时间:2020-05-14 11:03:56  来源:网络整理

c   类 static 函数_c语言 static函数_c语言中static 函数

我们应该知道C ++具有两种成员数据: 静态c 类 static 函数,非静态;三种成员函数: 静态,标准,虚拟. 实际上,对于普通成员函数,参数中有一个this指针. 该指针实际上通过该指针指向对象本身. C ++编译器将知道哪个对象调用该类的成员函数.

我们应该知道C ++具有两种成员数据: 静态,非静态;三种成员函数: 静态,非静态,虚拟.

在下面查看这种情况:

class A
{    int a;    int b;
};class B
{    int a;    int b;    static int c;
};class C
{    int a;    int b;    static int c;public:    void func() {}    static void pg() {}
};int main()
{    //1. 分析A对象占的内存
    A a;    cout << sizeof(a) << endl;  //结果是8
    //2. 分析B对象占的内存
    B b;    cout << sizeof(b) << endl;  //结果是8
    //3. 分析C对象占的内存
    C c;    cout << sizeof(c) << endl;  //结果是8
    return 0;
}

根据输出结果,我们得出以下结论:

a. 成员变量:

c语言中static 函数_c语言 static函数_c   类 static 函数

b. 成员函数存储在代码段中.

这里写图片描述

实际上c 类 static 函数,对于普通成员函数(不是静态成员函数),参数中有一个this指针. 该指针实际上通过该指针指向对象本身. C ++编译器将知道哪个对象调用该类的成员函数.

我们总结:

a. C ++类对象中的成员变量和成员函数分别存储;

b. C ++类的常见成员函数(包括构造函数,但不包括静态成员函数)都包含一个指向当前对象的this指针;

c   类 static 函数_c语言 static函数_c语言中static 函数

c. 静态成员函数和静态成员变量属于该类;

d. 静态成员函数和普通成员函数之间的区别:

静态成员函数不包含指向特定对象的指针,普通成员函数包含指向特定对象的指针.

我们需要解决以下问题:

a. C ++类对象中的成员变量和成员函数是否存储在一起?如果没有?

b. C ++编译器如何管理类和对象,尤其是对象调用类中的方法? C ++编译器如何区分哪个特定对象调用哪个成员方法?

c语言中static 函数_c语言 static函数_c   类 static 函数

我们应该知道C ++具有两种成员数据: 静态,非静态;三种成员函数: 静态,非静态,虚拟.

在下面查看这种情况:

class A
{    int a;    int b;
};class B
{    int a;    int b;    static int c;
};class C
{    int a;    int b;    static int c;public:    void func() {}    static void pg() {}
};int main()
{    //1. 分析A对象占的内存
    A a;    cout << sizeof(a) << endl;  //结果是8
    //2. 分析B对象占的内存
    B b;    cout << sizeof(b) << endl;  //结果是8
    //3. 分析C对象占的内存
    C c;    cout << sizeof(c) << endl;  //结果是8
    return 0;
}

根据输出结果,我们得出以下结论:

a. 成员变量:

b. 成员函数存储在代码段中.

c语言中static 函数_c语言 static函数_c   类 static 函数

这里写图片描述

实际上,对于普通成员函数(不是静态成员函数),参数中有一个this指针. 该指针实际上通过该指针指向对象本身. C ++编译器将知道哪个对象调用该类的成员函数.

我们总结:

a. C ++类对象中的成员变量和成员函数分别存储;

b. C ++类的常见成员函数(包括构造函数,但不包括静态成员函数)都包含一个指向当前对象的this指针;

c. 静态成员函数和静态成员变量属于该类;

d. 静态成员函数和普通成员函数之间的区别:

静态成员函数不包含指向特定对象的指针,普通成员函数包含指向特定对象的指针.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-209736-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 王小红
        王小红

        那干嘛南方芝麻糊赔两包芝麻糊

      热点图片
      拼命载入中...