77.初始化数据,如果类中有其他类,需要重写构造函数

 1 #include <iostream>
 2 #include <cstdlib>
 3 #include <string>
 4 using namespace std;
 5
 6 //初始化数据的时候,如果类中引用其他类,需要重写构造函数,int也是类
 7 class myclass
 8 {
 9 public:
10     int x;
11     int y;
12
13 public:
14     myclass(int a,int b) : x(a),y(b)
15     {
16
17     }
18 };
19
20
21 union myu
22 {
23     string str1;
24     int a;
25     int b;
26     myu()
27     {
28         new(&str1)string;//调用构造函数
29     }
30     ~myu()
31     {
32         str1.~basic_string();//析构
33     }
34 };
35
36 void main()
37 {
38     myu my;
39     my.str1 = "234";
40     cout << my.str1 << endl;
41
42     myclass *p = new myclass[2]{ {1,2},{3,4} };
43     for (int i = 0; i < 2; i++)
44     {
45         cout << p[i].x << " " << p[i].y << endl;
46     }
47     cin.get();
48 }

原文地址:https://www.cnblogs.com/xiaochi/p/8576790.html

时间: 2024-11-04 19:38:59

77.初始化数据,如果类中有其他类,需要重写构造函数的相关文章

关于C++类中的土著民:构造函数,复制构造函数,析构函数

我们初学C++时可能会对类的构造函数,复制构造函数,析构函数有点疑问.整理如下(个人见解,如有错误,还望指正.): 1.构造函数 根据构造函数的定义知它的作用是初始化类的数据成员或内嵌类的对象,所以它的参数表就应该是它要初始化的对象类型.构造函数分三类:默认构造函数.构造函数.委托构造函数. 默认构造函数 默认构造函数没有返回值,没有参数表,没有函数体,如果类内没有显式的定义构造函数,系统会自动生成默认构造函数,如果已经定义了构造函数,但仍需要默认构造函数,可以在默认构造函数参数表后加defau

C++学习笔记17,构造函数体内初始化数据成员与构造函数初始化器的区别(一)

在构造体内初始化数据成员是最常见的方法. 例如: #include <iostream> using namespace std; class A { private: int i; string s; public: A(int ii,string ss){ //在构造函数体内初始化数据成员 i=ii; s=ss; cout<<"ctor:i="<<i<<",s="<<s<<endl; } /

C++——类继承以及类初始化顺序

对于类以及类继承, 几个主要的问题:1) 继承方式: public/protected/private继承. 这是c++搞的, 实际上继承方式是一种允许子类控制的思想. 子类通过public继承, 可以把基类真实还原, 而private继承则完全把基类屏蔽掉. 这种屏蔽是相对于对象层而言的, 就是说子类的对象完全看不到基类的方法, 如果继承方式是private的话, 即使方法在基类中为public的方法. 但继承方式并不影响垂直方向的访问特性, 那就是子类的函数对基类的成员访问是不受继承方式的影

背水一战 Windows 10 (77) - 控件(控件基类): ContentControl, UserControl, Page

原文:背水一战 Windows 10 (77) - 控件(控件基类): ContentControl, UserControl, Page [源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 控件(控件基类 - ContentControl, UserControl, Page) ContentPresenter ContentControl UserControl Page 示例1.演示 ContentPresenter 的基础知识Controls/BaseContro

yii框架之gii创建数据表对应的model类

一.首先是在数据库中建立工程需要的表: 二.然后,配置对应文件: 在工程目录下yiiProject\protected\config\main.php.在50行定义了db应用组件,下面后一段注释掉了的mysql的链接配置项,我们将未注释的db注释掉,然后打开mysql链接代码并填写相关信息即可完成mysql链接配置项. 即,把下面代码         'db'=>array(             'connectionString' => 'sqlite:'.dirname(__FILE_

【2017-04-20】Ado.Net与面向对象结合架构中的数据访问层(实体类,数据访问类)

开发项目三层架构:界面层.业务逻辑层.数据访问层 今天学习一下数据访问层,分为实体类和数据访问类 所有的类放在App_Code这个文件夹下边.养成一个好的习惯. 一.实体类 数据库中的表映射为一个类,类名与表名一致.表中的每一列,都为该类下的成员变量和属性也就是最简单的封装 把数据库中的表名变为类的类名. 把数据库中的每一个列,变为实体类中的成员变量和属性 列名与属性名一致.成员变量名:在列名前边加上下划线.因为在外部访问只能访问到属性,为了看起来一致. using System; using

android 如何从服务器端的数据库中拿数据,在客户端显示类?

============问题描述============ android 如何从服务器端的数据库中拿数据,在客户端显示类? ============解决方案1============ 写一个网络访问的api,Android通过API取到数据, ============解决方案2============ 有種WebService的方法可以將資料用xml格式傳送取得 ============解决方案3============ 为神马要直接访问数据库呢 叫服务端给你开放几个接口不就行了么- - ===

java异常处理:建立exception包,建立Bank类,类中有变量double balance表示存款,Bank类的构造方法能增加存款,Bank类中有取款的发方法withDrawal(double dAmount),当取款的数额大于存款时,抛出InsufficientFundsException,取款数额为负数,抛出NagativeFundsException,如new Bank(100),

建立exception包,建立Bank类,类中有变量double  balance表示存款,Bank类的构造方法能增加存款,Bank类中有取款的发方法withDrawal(double dAmount),当取款的数额大于存款时,抛出InsufficientFundsException,取款数额为负数,抛出NagativeFundsException,如new Bank(100),表示存入银行100元,当用方法withdrawal(150),withdrawal(-15)时会抛出自定义异常. pa

支持数据列表分页的帮助类

[WPF]闲着没事,写了个支持数据列表分页的帮助类 支持分页的MVVM组件大家可以网上找,老周这个类只是没事写来娱乐一下的,主要是功能简单,轻量级,至少它满足了我的需求,也许还有未知的 bug . 这个类支持对数据列表进行分页处理,原理是利用 Skip 和 Take 扩展方法,从源列表中取出某一段数据.在实例化的时候,需要提供一个 IEnumerable<T> 对象作为参数,本类会根据这个数据源来计算分页,使用参数T使其支持泛型. public PagabledCollection(IEnum