new与默认构造函数

2023-11-01

class A
{
public:
    A(int i, int = 0){}
private:
    int a, b;
};

class B
{
public:
    //无需构造函数,因为数据成员的全部为public
    int a, b, c;
};

int main()
{
    A a = 3;
    B b = {1, 2, 3};
//    A *pa = new A[10];
    B *pb = new B[10];
    delete[] pb;
//    vector<A> va(100);
    vector<B> vb(100);
    A c(a);     //使用系统提供的行为,不能叫默认拷贝构造函数,叫“缺省按成员初始化”
    return 0;
}

int *pia = new int[10];
我们并不能给动态分配的数组每个元素一个初始化值,语法并不支持
基于这个原因,对于对象数组
如果并没有默认构造函数,不能创建动态对象数组,因为new对象数组的时候,自动调用构造函数以建立对象,(new不只是分配内存而已,而且给编译器标识出这块内存存放的是什么类型的对象,int,class A,这也属于new的行为,所以它调用构造函数,以提供识别数据类型,解析二进制数据流的能力)如果并没有默认构造函数,
语法上不支持逐个初始化列表给动态数组,这样就没法构造对象了
容器vector和内置数组类型,是一个道理,
关键在于理解:new的动作不只是分配内存,而且进行类型标识的行为
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

new与默认构造函数 的相关文章

  • 更快的四元数向量乘法不起作用

    我的数学库需要一个更快的四元数向量乘法例程 现在我正在使用规范v qv q 1 它产生的结果与向量乘以由四元数组成的矩阵相同 所以我对它的正确性充满信心 到目前为止 我已经实现了 3 种替代 更快 的方法 1 我不知道我从哪里得到这个 v
  • Django modelAdmin __init__ 和内联

    嘿 我对 Django 相当陌生 我正在寻找动态编辑管理类变量 完整的想法是在添加时隐藏内联 仅在编辑时显示 但我在这里提炼这个问题 有人可以解释为什么这不起作用吗 class dbTablePermissionInline admin T
  • (在 Ruby 中)允许混合类方法访问类常量

    我有一个为其定义常量的类 然后我定义了一个类方法来访问该类常量 这很好用 一个例子 usr bin env ruby class NonInstantiableClass Const hello world class lt lt self
  • C#:为派生类继承单独的静态成员

    我的问题简述 class A Other stuff in my class protected static staticMember class B A Other stuff in my class Will have A stati
  • 我应该使用课程吗? (Python)

    我正在尝试编写一个包含一些数学函数的小型 Python 模块 例如 它可能包含如下函数 def quad x a b c return a x 2 b x c 您可能会注意到它包含几个参数 即a b c 除了变量x 现在 如果我将其放入文件
  • 不能从模板 C++ 类继承[重复]

    这个问题在这里已经有答案了 我不知道这里出了什么问题 也许有人可以帮助我 我想继承我的新班级MyDictionary来自模板抽象类dictionary 我有这样的代码 字典 h ifndef UNTITLED CPP DICTIONARY
  • 调整向量大小会使迭代器失效吗?

    我发现这个C 代码 vector
  • CKEditor 类被剥离

    我有一个自定义插件 它添加了一个带有附加类的链接 当我使用 源 按钮查看此内容时 它会显示该类并且看起来应有的样子 但是 当我返回 WYSYWIG 视图并再次查看源代码时 该类已被删除 知道如何阻止这种情况发生吗 在此先感谢您的帮助 Che
  • 访问其他类中的变量 (Java)

    为什么下面的程序没有返回0 因为我正在访问p from a new A 其中还没有main呼吁吗 public class A public static int p 0 public static void main String arg
  • 在 php 中为类自动生成 getter 和 setter 的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我经常创建一个包含一些私有变量的类 当设置此类的实例时 应该可以使用 getter 和 setter 填充该类的所有变量 有没有一种简单的方法可
  • 如何从父类函数访问子类中定义的常量?

    我从 php net 看到这个例子 但 c MY CONST 仅在 5 3
  • 使用片段时应用程序崩溃

    我正在处理碎片和 我的代码中有一个我找不到的问题 logcat 指向我的一个片段中的这段代码 Override public View onCreateView LayoutInflater inflater ViewGroup conta
  • 如何使用 SWIG 将 numpy 数组转换为 vector& (参考)

    My goal 在 python 中创建 3 个 numpy 数组 其中 2 个将使用特定值进行初始化 然后通过 swig 将所有三个数组作为向量发送到 C 函数中参考 这是为了避免复制数据并损失效率 进入 C 函数后 将 2 个数组相加
  • 如何通过反射判断一个Java类是否是抽象类

    我正在通过 Jar 文件中的类进行交互 并希望找到那些不抽象的类 我可以通过实例化类并捕获 InstantiationException 来解决此问题 但这会影响性能 因为某些类启动繁重 我在 Class java 文档中找不到类似 isA
  • C++ 类的私有成员和受保护成员有什么区别?

    有什么区别private and protectedC 类中的成员 我从最佳实践惯例中了解到 应该创建不在类外部调用的变量和函数private 但是看看我的MFC项目 MFC似乎更青睐protected 有什么区别以及我应该使用哪个 私有成
  • 声明实例变量迭代哈希!

    我想做以下事情 我想声明一个迭代字典的类的实例变量 假设我有这个哈希 hash key1 gt value1 key2 gt value2 key3 gt value3 我想将每个键作为类的实例变量 我想知道我是否可以声明迭代该哈希的变量
  • 为什么 Java 类不能声明为 static?

    我试图找出为什么该类不能创建为静态类 喜欢 public static class Qwert public static void main String args int x 12 while x lt 12 x System out
  • 使用来自其他 Cython 代码的自定义 Cython 代码

    我目前正在尝试优化我的 Python 程序 并开始使用 Cython 以减少函数调用开销 也许稍后会包含优化的 C 库函数 所以我遇到了第一个问题 我在代码中使用组合来创建一个更大的类 到目前为止 我已经将我的一个 Python 类转换为
  • 我可以将 std::vector 与其包含的数据分离吗?

    我正在使用一个函数 该函数会生成一些数据std vector
  • C# 错误 CS0201:只能将赋值、调用、递增、递减和新对象表达式用作语句

    这是我收到错误的行 activeType typeof Reticle 以下是如何Reticle类已定义 有些属性和方法可能没有多大意义 但我认为类的定义应该是关键问题 public class Reticle Shape region F

随机推荐

  • 十分钟学会写shell脚本

    大家好 我是handsomecui 下面我为大家讲解一下shell脚本的写法 讲的不好的地方 欢迎大家留言拍砖 1 在linux下会写shell脚本是非常重要的 下面我参照例子给大家展示几个脚本 顺带这学习shell 的语法 什么时候hel
  • 汇编语言(1)——从机器到汇编

    汇编语言 王爽 著 读书笔记 1 汇编语言的出现 最早期出现的计算机 是名副其实的 计算 机 这个机器可以执行一系列特定的指令 即机器指令 而由机器指令构成的集合被称为指令集 也就是我们说的机器语言 机器指令是由一系列的二进制数字0和1构成
  • EMC整改流程及常见问题

    电磁兼容EMC整改专题 目录 EMC整改流程及常见问题 1EMC整改意见 2EMC整改流程 3EMC整改的一些小建议 4总结 电磁兼容 EMC EMC小结之时钟辐射问题 一前言 二测试数据分析 三辐射超标的原因 四结语 EMC整改流程及常见
  • 人机交互期末复习要点

    文章pdf下载 点击下载pdf 注 我们网上的作业 老师说的考试题目 可能会考的重点 无 可能会考选择题 也可能会考大题 比如 人机交互设备 我们这次期末考试就考了 绪论 什么是人机交互技术 是指关于设计 评价和实现供人们使用的交互式计算机
  • matlab中float类型的_数据类型(一)——数值类型

    数值类型包括两种 整数类型和浮点数类型 整数类型 uint8 分别表示有 不带u 无 带u 符号和对应的数值范围 或者说是整数的位数 浮点数类型 单精度 single 和双精度 float 或者直接输入小数 因为matlab默认即为双精度
  • ARM定义特殊寄存器(*(volatile unsigned long *))的理解

    以前老是对ARM程序中 volatile unsigned long 不理解 今天看了两篇文章 觉得对理解这个很有用 当然这个不止在定义内部特殊寄存器有用 在用到外部总线时 根据具体情况 定义外部器件的地址也可以用 下面是文章一 终于理解了
  • 常用IDE正则表达式

    目录 1 notepad 正则表达式 2 VScode正则表达式 3 pycharm正则表达式 梳理常用工具的正则表达式使用 逐步增加其他工具 1 notepad 正则表达式 注意 Notepad 正则表达式字符串最长不能超过69个字符 转
  • Unity做MMD(一)资源处理

    文章目录 unity插件 Blender插件 两者对比 要想把mmd 的模型拿到unity中处理 主要有两个方法 第一个是通过unity的插件将pmx模型文件转化为fbx 第二个就是通过第三方软件将pmx处理 例如blender 如果是想把
  • acwing算法基础__提高__进阶_课

    文章目录 1 排序 1 1 快速排序 分治 1 2 归并排序 分治 2 二分 2 2 整数二分 2 3 小数二分 浮点数二分 3 高精度 4 前缀和与差分 5 双指针算法 6 位运算 7 离散化 8 区间合并 总结 要求 把算法的思想搞懂
  • Mybatis中ResultType和ResultMap的区别

    MyBatis中的ResultType和ResultMap都是用来映射查询结果到Java对象的 ResultType适合简单查询结果的映射 而ResultMap适合复杂查询结果及自定义映射关系的情况 ResultType指定了返回值类型 即
  • 【Unity2D】相机移动以及设置相机边界

    添加相机 添加相机时 首先需要在unity中添加 Cinemachine 包 第一次使用这个包时 需要在Package Manager中搜索并安装 安装Camera Mechine包后 添加2D Camera 设置跟随对象为Ruby 从Hi
  • 在线一键JS混淆还原

    当今 随着互联网的发展 越来越多的网站开始使用JavaScript来实现动态交互和用户体验 但是 由于JavaScript代码的开放性和易于复制 网站管理员需要采取一些措施来保护他们的代码 这就是JavaScript混淆工具产生的原因 js
  • 【经验-强制HTTPS-web】在服务器301强制HTTPS跳转,套上腾讯云CDN后,第一次访问发生不强制跳转HTTPS的问题解决方法

    我的个人站网址 https mdzz pro 今天偶然在编程群里展示了下个人站 没想到大佬居然说我的网站没有开Https 我当场懵逼了 不可能啊 面板上我开了强制Https啊 于是我自己用edge访问了一下 结果发现真是这样 第一次 第二次
  • vim常用设置---(.vimrc详细配置)

    vimrc配置文件内容如下 一般设定 设定默认解码 set fenc utf 8 set fencs utf 8 usc bom euc jp gb18030 gbk gb2312 cp936 不要使用vi的键盘模式 而是vim自己的 se
  • 设计模式--外观模式

    外观模式 属于结构型模式 基本原理 隐藏系统复杂性 为系统开放一个便于使用的接口 主要流程 1 创建系统和子系统 2 创建一个外观类 统一管理子系统的功能 并对外提供接口 注意 外观类是管理子系统和对外提供接口 include
  • 数据库DDL,DML

    数据库DDL DML 一 DDL操作数据库 查询数据库 SHOW DATABASE 创建数据库 创建 CREATE DATABASE 数据库名称 创建 判断 如果不存在则创建 CREATE DATABASE IF NOT EXISTS 数据
  • Cesium加载矢量数据探索——从geojson到矢量切片

    矢量数据由于包含确定的坐标信息 通常用于表达准确的空间位置实体 在cesium中 不支持对shp进行加载 而是需要对shp数据进行转换 一般cesium支持的shp格式如下 geojson topojson kml czml 通常来说 对于
  • 什么是线程?以及线程的总结。(十小点1700字)

    1 什么是程序 进程和线程 2 创建线程的三种方式 3 继承Thread类来创建线程和实现Runable接口创建线程的区别 4 线程的方法 线程的优先级别 编辑 5 线程的状态以及图解 6 多线程的概念 优点 缺点 7 线程同步的概念 编辑
  • shell脚本中的if语句与case语句

    一 if语句 if语句从上至下按照顺序依次判定执行 格式如下 if 判定条件 如果 then 那么 elif 重新的一次判定 又如果 then 那么 else 否则 可以添加也可以不加 fi 结尾 倒写 注意 其中的elif不限个数 可以多
  • new与默认构造函数

    class A public A int i int 0 private int a b class B public 无需构造函数 因为数据成员的全部为public int a b c int main A a 3 B b 1 2 3 A