美文网首页
C++类的概念和实例化

C++类的概念和实例化

作者: 欢喜明 | 来源:发表于2018-04-18 09:52 被阅读0次

记录一:

类是 C++ 的核心特性,通常被称为用户定义的类型。

定义一个类,本质上是定义一个数据类型的蓝图,这实际上并没有定义任何数据,只有在实例化一个类的时候才会分配内存。

记录二:

C++类实例化的两种方法:

先定义一个类:

class cc

{  

    public:  

        int  a;  

        int  b;  

};  

void main()  

{  

        cc o[3];   //栈上;直接声明并调用构造函数  ;单个就直接 cc  o;

        0[1].a=10;  

        cc  *p=new cc[3];  //堆中;使用指针创建,程序运行完毕后必须释放内存

        p[0].a=10;  

        p->b=10;  

        delete []p;  

        p=NULL;  

}  

1.在栈上实例化一个对象数组

cc o[3];  类名+数组的名称+数组的大小,创建完成后每一个数组元素都可以访问各自的成员,例如用o[1]来访问数组的第二个元素,后面接点号来访问数据成员,形如o[1].a=10;这里使用完后内存是自动销毁的

2.在堆中实例化一个对象数组

cc  *p=new cc[3];  用一个指针指向一段内存,开辟内存用new运算符,这里数组大小为3,则创建时会调用三次构造函数。创建完成后每一个数组元素都可以访问各自的成员,例如p[0].a=10;  是通过指针接一个索引再加点号和数据成员访问的,也可以通过p->b=10;来进行赋值。在这里使用完后,必须要通过delete来销毁这个对象数组,由于是一个对象数组,所以在销毁的时候是调用了多次析构函数的

3.在C++中,new运算符是用于开辟内存,例如开辟一段内存空间用于存放一个数组的每个对象,不仅仅是实例化类使用的。

补充:实例化有参数的情况:

class C {

public:

    C(string s = "", int i = 0, double d = 1.0) {

        dataMember1 = s;

        dataMember2 = i;

        dataMember3 = d;

    }

    void memberFunction1() {

        cout << dataMember1 <<" "<< dataMember2 << '" "<< dataMember3  << endl;

    }

    protected:

    string dataMember1;

    int dataMember2;

    double dataMember3;

};

int main() {

    //创建类实例方法1:直接声明并调用构造函数 ;带参数的;

    C obj1("o1", 11, 111);

    obj1.memberFunction1();

    return 0;

}

完毕。

相关文章

  • C++类的概念和实例化

    记录一: 类是 C++ 的核心特性,通常被称为用户定义的类型。 定义一个类,本质上是定义一个数据类型的蓝图,这实际...

  • 跟我一起学Python(五)

    类和实例 类的定义和实例化 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的...

  • C++类的实例化对象的大小之SIZEOF()

    之所以写这篇《C++类的实例化对象的大小之sizeof()》总结一下。你不知道的C++类的实例化对象的大小之si...

  • python基础-09-面向对象、装饰器

    面向对象 类概念 类的定义 类的实例化 类和实例的属性 类的私有变量 数据封装 继承 多态 多继承 类的特殊方法 ...

  • 三、python面向对象

    1.面向对象基础 类和对象(类和实例) 其实python面向对象的概念和c++、java等高级语言没什么区别,只是...

  • 关于C++不了解的那些事

    关于C++不了解的那些事 new & delete C++类实例化的两种方式:new和不new的区别 - Zope...

  • java基础之-Java 抽象类、普通类、接口的区别

    1. 概念 2. 抽象类与普通类 (1)普通类可以去实例化调用;抽象类不能被实例化,因为它是存在于一种概念而不非具...

  • PHP面试题7--面向对象基础2

    抽象类和接口的概念和区别 1. 概念: 抽象类:是一种特殊的,不能被实例化的类,只能作为其他类的父类使用。使用ab...

  • 《大话设计模式》随笔

    1、不会实例化或者说实例化没有任何意义的父类可以变成抽象类,作为一个抽象的概念。 2、抽象类代表的是一个抽象的概念...

  • 面向对象基础

    类的相关知识 初识类 类有两种作用:属性引用和实例化 属性引用(类名.属性) 实例化:类名加括号就是实例化,会...

网友评论

      本文标题:C++类的概念和实例化

      本文链接:https://www.haomeiwen.com/subject/uxomkftx.html