使用构造函数初始化成员数组

#include <iostream>

using namespace std;

class Box//盒子类
{
public:
	//定义一个构造函数用于初始化对象数组
	Box(int h, int w, int l);

	int volume();//计算盒子的体积

private:
	int height;//盒子的高
	int width;//盒子的宽
	int length;//盒子的长
};

//定义一个构造函数用于初始化对象数组
Box::Box(int h, int w, int l)
{
	height = h;
	width = w;
	length = l;
}

//计算盒子的体积
int Box::volume()
{
	int v = height * width * length;

	return v;
}

int main()
{
	//使用构造函数初始化三个盒子
	Box a[3] = {
		Box(10,12,15),
		Box(15,18,20),
		Box(16,20,26),
	};

	//打印三个盒子的体积
	cout<<"volume of a[0] is "<<a[0].volume()<<endl;
	cout<<"volume of a[1] is "<<a[1].volume()<<endl;
	cout<<"volume of a[2] is "<<a[2].volume()<<endl;

	return 0;
}

执行结果:

使用构造函数初始化成员数组,布布扣,bubuko.com

时间: 2024-12-05 08:36:02

使用构造函数初始化成员数组的相关文章

C++中构造函数初始化成员列表总结

1.只能在构造函数初始化列表初始化的成员变量的类型? a.const成员变量 b.引用类型的成员变量 c.static不能在初始化列表中进行初始化 d.类成员变量中有自定义类型的变量最好在初始化列表中进行初始化 2.初始化列表的顺序? 初始化列表的初始化顺序是依据类成员变量定义的顺序来决定的. 3.关于static const是否应该在初始化成员列表中初始化? static const为全局静态常量,全局的意思是该变量属于整个类而非某个类实例,所以 不能再初始化列表中进行初始化.

[c++基本语法]——构造函数初始化列表

c++构造函数初始化成员变量列表: 1 #pragma once 2 class Node 3 { 4 public: 5 int data; // 权值 6 Node *parent; // 父节点 7 Node *left; // 左子节点 8 Node *right; // 右子节点 9 public: 10 // 该段代码是c++的基本语法中的“构造函数初始化成员变量列表” 11 Node(void):data(-1),parent(NULL),left(NULL),right(NULL

【C/C++】构造函数、默认构造函数、成员初始化列表

常见问题 Q1. 下列关于构造函数的描述中,错误的是( ) A. 构造函数可以设置默认的参数 B. 构造函数在定义类对象时自动执行 C. 构造函数可以是内联函数 D. 构造函数不可以重载 Q2. 下列代码中a.b的各个成员变量值是多少? 1 class Student 2 { 3 public: 4 Student() {} 5 void show(); 6 private: 7 string name; 8 int number; 9 int score; 10 }; 11 Student a

const成员或者引用成员必须使用构造函数初始化列表的方式

#include<iostream.h> class A { const int a; int b; }; void main() { A obja; }编译出现如下错误:error C2512: 'A' : no appropriate default constructor available;如果将const去掉就没错了! #include<iostream.h> class A { public: const int a; int b; A(int x):a(x){} };

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++构造函数初始化列表与赋值

C++中类的初始化操作一般有四个部分组成: 1.构造函数初始化列表 2.构造函数体内赋值 3.类外部初始化 4.类声明时直接赋值 对于内部数据类型(char,int,float...),构造函数初始化列表和构造函数体内赋值,基本上没多大区别,效率差异也不大,但两者不能共存: class Student { public: Student(char *name, int age): //A初始化列表 m_name(name), m_age(age) { } Student(char *name,

构造函数初始化列表

构造函数初始化列表有时是必要的.虽然构造函数分为初始化和计算阶段,使用初始化构造函数列表效率要高一些,这是其一,而且有些情况下必须使用,下面是一例, 1 class Foo 2 { 3 public: 4 Foo(int x, int y): a(x), b(y) {} 5 6 private: 7 int a; 8 int b; 9 }; 10 11 class Bar 12 { 13 public: 14 Bar(): foo(10, 10) {} 15 private: 16 Foo fo

读陈浩的《C语言结构体里的成员数组和指针》总结,零长度数组

原文链接:C语言结构体里的成员数组和指针 复制如下: 单看这文章的标题,你可能会觉得好像没什么意思.你先别下这个结论,相信这篇文章会对你理解C语言有帮助.这篇文章产生的背景是在微博上,看到@Laruence同学出了一个关于C语言的题,微博链接.微博截图如下.我觉得好多人对这段代码的理解还不够深入,所以写下了这篇文章. 为了方便你把代码copy过去编译和调试,我把代码列在下面: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include <stdio.h>

使用构造函数初始化三角形类

方法1:使用带参数构造函数,即Triangle(double x, double y, double z),三边长在调用时由实参直接给出 #include <iostream> #include <cmath> using namespace std; class Triangle { public: //带参构造函数 Triangle(double x, double y, double z); double perimeter(void);//计算三角形的周长 double a