new出来对象会调用对象的构造函数,但是malloc出来的对象是没有调用构造函数的,因此下面使用malloc初始化的对象私有变量是没有经过构造函数初始化的但是通过new出来的对象,对象已经经过构造函数的初始化。

//
// Created by andrew on 2021/3/8.
//
#include <iostream>
#include <string>using namespace std;class MallocClass {private:string _valor;
public:MallocClass() {_valor = "Malloc_test";}const string &get() const {return _valor;}void set(const string &valor) { this->_valor = valor;}
};int main(int argc, char ** argv)
{auto * mallocClass = (MallocClass*)malloc(sizeof(MallocClass));
// 输出为空,说明malloc申请的对象是没有调用构造函数cout << mallocClass->get() << endl;mallocClass->set("set");free(mallocClass);cout << "class malloc end ==============" << endl;auto *mallocClass1 = new MallocClass;cout << mallocClass1->get() << endl;return 0;
}

可以看出new出来的对象私有变量是经过初始化的,malloc

输出结果:

/work/achou-leetcode/cmake-build-debug/testclass malloc end ==============
Malloc_testProcess finished with exit code 0

使用malloc初始化一个类和new初始化一个类的区别相关推荐

  1. 一个类及其对象初始化的过程

    版权声明:本文没有版权,请随便转载. 一.什么时候需要初始化一个类 首次创建某个对象时 -> Dog dog = new Dog(); 首次访问某个类的静态方法或者静态字段时 -> Dog ...

  2. #十二、编写三角形类Triangle,初始化三个属性,分别是三条边的长度,定义一个计算并打印周长的函数 #十三、编写等腰三角形类EWtriangle,继承于三角形类,初始化只用传一个腰长和一个底长,定

    #十二.编写三角形类Triangle,初始化三个属性,分别是三条边的长度,定义一个计算并打印周长的函数 #十三.编写等腰三角形类EWtriangle,继承于三角形类,初始化只用传一个腰长和一个底长,定 ...

  3. Python编程基础 第四章 编程练习 请定义一个Cylinder类,具体要求为:(1)每个Cylinder类对象可以存储一个圆柱体;2)具有用于初始化半径和高的构造方法;(3)具有计算圆柱体体积

    题目内容: 请定义一个Cylinder类,具体要求为:(1)每个Cylinder类对象可以存储一个圆柱体(包括半径和高):(2)具有用于初始化半径和高的构造方法:(3)具有计算圆柱体体积的方法GetV ...

  4. 【C++】利用构造函数对类对象进行初始化

    运行环境:VS2017 一.对象的初始化 每一个对象都应当在它建立之时就有就有确定的内容,否则就会失去对象的意义. class Time {int hour = 0;int min = 0;int s ...

  5. 【转载】c#类的成员初始化顺序

    作者:彭白洋 创建于:2009-01-15 出处:http://www.cnblogs.com/siceblue/archive/2009/01/15/1376430.html  收录于:2013-0 ...

  6. c++构造函数以及类中变量初始化顺序

    c++构造函数以及类中变量初始化顺序 Submitted by ant on Fri, 03/29/2013 - 20:05 构造函数 c++ 的类提供了一种抽象机制,使用起来要比 c 方便很多.为了 ...

  7. 【Kotlin】Kotlin enum 枚举类 ( 常用用法 | 初始化成员变量 | 实现抽象方法 | 实现接口 | 获取名称和位置索引 | 调用枚举常量方法 )

    文章目录 I . 枚举类常用用法 II . 枚举类初始化 III. 枚举类匿名类 IV . 枚举类实现接口 V . 获取枚举常量名称和位置索引 VI . 获取枚举常量的成员变量 VII . 调用枚举常 ...

  8. 类成员初始化顺序php,PHP-php类成员变量初始化的问题?

    PHP类中,若要初始化成员属性,那么成员属性的初始值必须是一个常数,如果不是常数(如变量),则会报错,所以,如果你要初始化就只能是在构造函数里进行初始化,不过你可以写一个方法,这样就可以在构造函数里批 ...

  9. android 怎么初始化下拉框_第30讲:“二师兄”的成长历程之二,类属性的初始化...

    在上一篇中我们建立了一个极为简单的pigsy类,在这个类中我们定义了三个属性,一个方法.在谈到类对象在初始化的时候,我们特意的指出:某些属性可以通过自动初始化来设置,这样也会省去你一些麻烦.这就是本篇 ...

  10. 构造方法、类的初始化块以及类字段的初始化顺序

    构造方法 首先,以下代码为何无法通过编译?哪儿出错了? public class Test {public static void main(String[] args) {Foo obj1 = ne ...

最新文章

  1. mysql远程连接工具 cen_Navicat远程连接Centos数据库Mysql
  2. 内核中的内存申请:kmalloc、vmalloc、kzalloc、kcalloc、get_free_pages【转】
  3. Java快速教程--vamei 学习笔记(基础篇)
  4. LVS的NAT工作模型详解
  5. 用Docker搭建Nexus私服
  6. 使用Qt Assistant
  7. oracle经常开关好吗,频繁开关机对电脑有什么影响吗?
  8. 铺磁砖,给定M*N的格子,用u*v的瓷砖去铺满,有多少种铺法
  9. 时尚高端电商网页设计素材
  10. 华尔街(Wall Street)与先锋集团(Vanguard )之间的战争
  11. html 转换 swf文件怎么打开,修改网页中的FlashSWF文件的方法
  12. 开源许可证 有人管吗_4个令人困惑的开源许可证场景以及如何浏览它们
  13. 几种设置开机启动的方法
  14. 路由器设置成交换机步骤
  15. hellow word
  16. Qt: 读取/写入文本文件内容
  17. Mentor Expedition如何极坐标旋转添加器件?
  18. Eclipse资源管理IResource,IWorkspace,IProject, IFolder,IPath
  19. Networkx使用指南
  20. OSChina 周六乱弹 ——泡妞指南

热门文章

  1. 关于异常Exception
  2. C语言运算符优先级 详细列表
  3. 使用Spring简化JavaMail
  4. 分析性能瓶颈 — 调试OutOfMemoryException
  5. hdu 1546(最短路)
  6. poj-青蛙的约会(扩展欧几里得)nyoj-小柯的约会
  7. 最新版Xshell 6安装教程详解
  8. shell练习03 安装mysql
  9. python模块--json \ pickle \ shelve \ XML模块
  10. ELK日志平台一 ElasticSearch的安装