关于C++类对象数组初始化的问题如何解决?

如题所述

Employee类具有姓名,街道地址,城市和邮编等私有数据成员,都可以用字符型数组来表示.在成员函数中,构造函数用来初始化所有成员数组,对字符数组的赋值可以使用字符串拷贝函数strcpy(char*,char*name);display()中使用cout显示姓名,街道地址,城市和邮编等属性,change_name(()改变类中表示姓名属性的字符数组类型的数据成员.在主程序中声明这个类的对象并对其进行操作.
#include <iostream>
#include <string>
using namespace std;
class Employee{private:char name[30];
char street[30];
char city[18];
char zip[6];public:Employee();
Employee(char *n,char *str,char *ct,char *z);
void change_name(char *n);
void display();};Employee::Employee (){}Employee::Employee (char *n,char *str,char *ct,char *z){strcpy(name,n);
strcpy(street,str);
strcpy(city,ct);
strcpy(zip,z);}void Employee::change_name (char *n){strcpy(name,n);}void Employee::display (){cout << name << " " << street << " "<< city << " " << zip<< endl;}void main(){Employee em[5];
Employee el("张三","永乐大街1号","陕西","710600");
el.display();
温馨提示:内容为网友见解,仅供参考
无其他回答

C++中类对象数组的初始化
2、所有构造函数都是在定义时候就调用,定义以后的调用就不叫初始化了,而是赋值。所以std[i](name[20],num,chinese,maths,english); 就是错误的。3、解决方法:你只能定义一系列指针,然后再每次构造的时候调用new来构造类对象。如:Student *std[5];for(i=0;i<5;i++){ cin>>name[20]>>n...

c++中如何使用数组初始化对象?
在C++中,可以使用数组初始化对象。尽管并非完全支持,但C++以其灵活性,允许用户实现这一特性。对于自定义类型,C++11引入了列表式初始化功能,这得益于“std::initializer_list”工具类。通过使用此工具类,自定义类型也能支持列表式初始化。下面是一个示例,展示如何利用“std::initializer_list”来初始...

求助:C++对象数组初始化问题 (Dev C++不通过,VC6.0却过了)
我的建议是,拷贝构造函数的参数写成const test & 试试看 (如果可以的话,请你以后也遵守这个写法,这是拷贝构造函数的规范)

C++11系列文章之二 | 列表初始化技巧
普通数组初始化 POD类型初始化使用memcpy复制对象。拷贝初始化与直接初始化。C++11标准初始化方式 聚合类型使用{}进行初始化,而非聚合类型以构造函数初始化。聚合类型初始化列表技术细节 观察两个实例,利用轻量级类模板与std::initializer_list实现不指定个数的初始化。initializer_list使用与特点 std::initi...

C++中, 类的私有数据成员在定义的时候不能进行初始化吗?
是的,C++中类的数据成员不管是不是私有的,都不能进行初始化。因为类就相当于一个数据的模板,是一种自定义组合的新数据类型,而不是一个变量。当程序声明一个类的时候,事实上并没有为程序申请存储空间,只有用这个类定义一个类对象的时候,才申请空间。连空间都没有,当然不能像定义变量一样的...

c++如何建立对象数组
c++建立对象数组主要通过数组初始化来实现,其语法结构是数组名 = {对象1, 对象2, 对象3...};在您给出的实例中,定义了一个名为"employee"的对象数组e,其大小为6。数组的每个元素都是"employee"类的实例。数组的初始化使用了花括号{}。数组中的第一个元素被初始化为默认构造函数生成的对象,即...

关于C++的用参数初始化对象的时候string到char型的变换偶尔提示错误...
第十行的nam是string类型变量,C++的标准库容器类型。要被赋值的name的类型是char* const(指向字符数组头的指针)。没法直接赋值,可以把name改成string类型(string name),或者定义为char* name,然后赋值时name = nam.c_str();,或者用循环把nam里的东西一个个赋给name。。

C++中,数组问题.
(1)欲阻止一个变量被改变,可以使用const关键字。在定义该const变量时,通常需要对它进行初始化,因为以后就没有机会再去改变它了;(2)对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const;(3)在一个函数声明中,const可以修饰形参,表明它是一个输入...

C++关于类中类成员变量是数组的问题,还有定义类对象是数组,问题在下面...
private:int size;\/\/整形数组大小 int elem;\/\/整形数组当前元素个数,初始为0,当elem等于时size,数组满 int *p;\/\/指向整形数组,动态分配空间 public:ListArray(int s=100)\/\/用初始化整形数组大小 { size=s;} void put(int n)\/\/将加入整形数组,elem自增1 { elem=(sizeof(p)\/sizeof(int))...

c++初始化vector数组?
这是c++ vector初始化的一种方法,两个参数就是两个指针,vector的内容就是这两个指针之间的内容。这里第一个指针是数组的开始,第二个,sizeof(array)\/sizeof(int)是数组元素个数,加上array就是数组的结尾,意思就是初始化一个vector,把这个数组里的这么多元素都放进里面。

相似回答