c++怎么给一个类里的结构体中的变量赋值

初学c++,我写一个类,里面有个结构体,结构体里有几个变量,我想给结构体里变量赋值,怎么写呢,比如说:
头文件中我定义
class person{
string name;
string gender;
srtuct brith{
int year;
int month;
int day;
};
void set(int,int,int);
};
我在cpp里怎么给这个结构体brith里的年月日赋值呢?

这个应该算嵌套类的使用了,首先你这个结构申明是私有(private)的吗?如果是的话,只能用构造函数逐一赋值:
class person{
string name;
string gender;
struct brith
{ int year; int month; int day; };
brith b;//创建实例
public:
void set(int,int,int);
person (){name="xiaoming";gender="male";b.year=1995;b.month=9;b.day=23;}
};
int main()
{
person p;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-10-07
struct brith b = {2014, 1, 1};
person p = {"小明",“男”,b,};追问

那我该怎么去写这个.h的cpp呢,我想在其中写一个cpp,就是上面那个set()
这个我怎么在set给这个结构体赋值,也就是说怎么写这个set的函数?
void person::set(int, int, int)
{
此处给那个stuct brith写赋值?
}
我主要是不会怎么加前缀
是加“::”?还是加“.”?

第2个回答  2014-10-07
要有结构体的对象或指针才行
第3个回答  2014-10-07
构造函数

c++怎么给一个类里的结构体中的变量赋值
这个应该算嵌套类的使用了,首先你这个结构申明是私有(private)的吗?如果是的话,只能用构造函数逐一赋值:class person{ string name;string gender;struct brith { int year; int month; int day; };brith b;\/\/创建实例 public:void set(int,int,int);person (){name="xiaoming"...

结构体变量赋值方法?
1按字符赋值。如结构体变量为a,成员为字符数组s[10];那么可以 for(i=0;i10;i++)a.s[i]=xxx;xxx可以是任意字符。比如getchar(),即从终端读取。2用strcpy赋值。如 strcpy(a.s,"test");就是将字符数组赋值为"test"。3用memcpy赋值。如 memcpy(a.s,"test2",3);就是将a.s的前三个字符...

在结构体内部的变量如何赋值
tree(int w=-1, int p=0){weight=w;parent=p;} struct tree *lchild,*rchild;}huffmantree;

C++中结构体的char类型怎么赋值?
如果用string的话,要在开头加上 include <string> 然后 struct worker { int id;string name;string sex;};后边就可以像你那么直接赋值就行了。如果要用字符串形式,那么赋值时候应该用 strcpy()函数来赋值。

C++怎么给嵌套结构体赋值,大神帮助下,跪求
首先右侧已经确定需要对上一个结构体成员赋值:不清楚你的意思,cutbePoint[8]已经算越界了,暂且不谈,假设没越界,你只能cutbePoint数组中的一个进行赋值,即赋值{{0,0,0}}是可以的,但你尝试对整个数组赋值,所以错误 如果相对整个数组赋值,看起来是似乎是Cube[1][1][1].CubePoint = {8个...

C\/C++编程笔记:C语言结构体想要直接赋值,应该如何实现?
首先,我们以一个实例来探讨:在Ubuntu 13.04环境下,使用gcc 4.7.3编译运行的结果如下:从结果可以看出,C语言中结构体的直接赋值是可行的。我们可以通过查看struct_assign()函数的汇编实现,从底层了解C语言是如何实现两个结构体之间的赋值操作的。这段汇编比较简单,由于结构体的对齐特性,sizeof(...

C++中结构体如何快速的进行赋值???有
你既然都用了C++了,为什么还要用结构体而不用类定义?结构体就是这点很麻烦,一直都没有过解决方案,所以才诞生了面向对象编程思想。使用类定义就可以把数据和方法写到一个类型里去,也就是OOP。都写到类里的话,你可以定义一个互相赋值的函数,然后把你的对象用VECTOR或者数组进行管理和访问,然后循环...

C++中对结构体中的字符数组赋值的问题
如果不在定义的时候初始化,后面就只能挨个初始化。比如int a[2] = {1,2};可以 但是int b[2];b[]={1,2};不行,int b[2];b ={1,2}也不行。如果你要给结构体一起赋值的时候必须这样 struct stu a = {{'a','b'},'c',{'d','e'},{'f','g'}};...

c++,关于如何用cin给结构体中元素赋值的问题
include<iostream>#include<string>struct xinxi{char fname[20];char lname[20];char gread[20];int age;};int main(){using namespace std;xinxi xinxi1;\/\/注意定义结构体变量,而不是用xinxicout<<"What is your first name ? "<<endl;cin.getline(xinxi1.fname,20);cout<<"What's ...

C++怎么利用指针给结构体的字符数组赋值
char Ch[30]="Hello world";for(int i=0;i<30;i++)\/\/其实就和一般的数组一样...在数组前加一个指针就行了... p1->ch[i]=Ch[i];printf("%s\\n",p1->ch);strcpy(p2->ch,Ch);printf("%s\\n",p2->ch);scanf("%s",p3->ch);printf("%s\\n",p3->ch);return 0;...

相似回答