对struct和class使用大括号初始化的测试
#include <iostream>
using namespace std;
struct struct1{
/*
struct1(){
cout<<"this is output by struct1 !";
}
if add this code block , such errors like 'you must initlizer data number of struct1 by constructor in g++98' will occor in compile time,
*/
int data1 ;
double data2 ;
string data3 ;
/*
but if you add the following function without error
*/
void showStruct1(){ cout<<"this is output by showStruct1 of struct struct1 ! \n ";
}
};
class class1{
public :
int data1 ;
double data2 ;
string data3 ;
};
int main(){
struct1 oneStruct1 = {, 1.1 , "hello world !"};
class1 oneclass1{, 1.1 , "hello world !"};// errror :
// scalar object 'oneclass1' requires one element in initializer ???????????????????
//solution : change from 'class1 * oneclass1 = {1,1.1 ....}' to 'class1 oneclass1{......}'
return ;
}
/* Conclusion :
if struct include some special function like constructor and destructor will can't initilizer by {} , class default can't inializer by {}, but you can change access modifiers to public */

使用大括号初始化struct应该是C语言中的语法。由于C++是向后兼容C,所以在C++中也支持该语法。从上面的程序可以看出:
当struct和class中没有特定的像构造函数或者析构函数等面向对象特征方法时是可以通过大括号进行初始化;但是如果struct和class中有标志着面向对象的元素时,就不能初始化。也就是说,当struct和class体现的是一个数据集合时可以使用大括号,但是如果体现的是一种数据类型就不能使用大括号。
对struct和class使用大括号初始化的测试的更多相关文章
- C++11新特性——大括号初始化
C++11之前,C++主要有以下几种初始化方式: //小括号初始化 string str("hello"); //等号初始化 string str="hello" ...
- 基于iSCSI的SQL Server 2012群集测试(二)--SQL群集安装后初始化配置测试
4.群集安装后初始化配置测试 4.1 禁用full-text 服务和Browser服务 Full-text服务:公司目前暂不使用,需在两个节点上分别禁用 Browser服务:为保证安全,建议将Brow ...
- Java 中静态代码块初始化问题测试
Java 中静态代码块初始化问题测试 原创 情况一:变量是 static final 修饰的"编译期常量",如 public static final String a = &qu ...
- Unity-Animator深入系列---StateMachineBehaviour初始化时间测试
回到 Animator深入系列总目录 结果和想的有点出入 测试结果: 1.SMB初始化会被调用多次,次数不可控,当Animator组件重复开关则重复初始化. 2.SMB支持构造函数 MyClass p ...
- C结构体struct 和 共用体union的使用测试
#include <stdio.h> struct { char name[10]; char sex; char job; int num; union{ //联合只能共用同一个内存 i ...
- 大括号之谜:C++的列表初始化语法解析
有朋友在使用std::array时发现一个奇怪的问题:当元素类型是复合类型时,编译通不过. struct S { int x; int y; }; int main() { int a1[3]{1, ...
- c语言 struct 的初始化
转自:http://www.cnblogs.com/silentjesse/archive/2013/07/30/3225212.html struct数据有3中初始化方法:顺序,C风格及C++风格的 ...
- C语言中结构体(struct)的几种初始化方法
转自https://www.jb51.net/article/91456.htm 本文给大家总结的struct数据有3种初始化方法 1.顺序 2.C风格的乱序 3.C++风格的乱序 下面通过示 ...
- struct{0}二
一直以为 ]={};是把a的所有元素初始化为0,]={};是把a所有的元素初始化为1. 调试的时查看内存发现不是那么一回事,翻了一下<The C++ Programming Language&g ...
随机推荐
- 用div,ul,input模拟select下拉框
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- java发送短信--httpclient方式
最近头让我写个发送短信的java程序检测BI系统,检查数据库是否有异常发送,有则发送短信到头的手机里.这里我直说httpclient方式的get请求方式,并且已经有方式的短信的接口了,所以只要再加上参 ...
- ios开发学习笔记(这里一定有你想要的东西,全部免费)
1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用). 其实在代码里还是可以设置的,那就是删除背景view [ ...
- spring mvc 注解访问控制器以及接收form数据的方式,包括直接接收日期类型及对象的方法
Spring 中配置扫描器 <!-- springmvc的扫描器--> <context:component-scan base-package="com.beifeng. ...
- 【转载】Android内存泄露
相信一步步走过来的Android从业者,每个人都会遇到OOM的情况.如何避免和防范OOM的出现,对于每一个程序员来说确实是一门必不可少的能力.今天我们就谈谈在Android平台下内存的管理之道,开始今 ...
- HowTo:使用数据流读写消息
本文主要演示使用TPL 数据流库从数据流块(dataflow block)读写消息. 提供了同步方法和异步方法. 主要使用BufferBlock,其既能作为message source,有能作为m ...
- ZOJ3201 Tree of Tree(树形DP)
题目大概求一棵树中大小为k的子树的最大权和. dp[u][k]表示以u为根的子树中包含u结点的大小为k的子树的最大权和,然后树上背包转移转移很容易.. #include<cstdio> # ...
- NoSql之MongoDB--Ubuntu下安装
MongoDB只提供了64位LTS(长期支持)Ubuntu发行版的packages.例如,12.04 LTS,14.04 LTS,16.04 LTS等等. 1.导入被包管理系统使用的公钥 Ubuntu ...
- NUC_HomeWork1 -- POJ2067(最短路)
C - Fire Station Description A city is served by a number of fire stations. Some residents have comp ...
- The 2015 China Collegiate Programming Contest L. Huatuo's Medicine hdu 5551
Huatuo's Medicine Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others ...