c++ 类中结构体的对象
时间: 2023-06-07 21:08:42 浏览: 60
可以用以下方式创建:
```cpp
struct person {
char name[20];
int age;
};
int main() {
struct person p1 = {"John", 25};
struct person p2;
strcpy(p2.name, "Mike");
p2.age = 30;
return 0;
}
```
这里定义了一个名为person的结构体,包括姓名和年龄两个成员。p1和p2是person类型的对象,分别使用了结构体初始化和成员赋值两种方式。
相关问题
c++类中结构体成员初始化
在C++类中,结构体成员的初始化可以通过构造函数来实现。构造函数是一种特殊的成员函数,用于在创建对象时初始化对象的成员变量。
以下是C++类中结构体成员初始化的几种方式:
1. 默认构造函数:可以在类中定义一个无参的构造函数,用于初始化结构体成员的默认值。例如:
```cpp
class MyClass {
public:
struct MyStruct {
int num;
char ch;
};
MyClass() {
myStruct.num = 0;
myStruct.ch = 'A';
}
private:
MyStruct myStruct;
};
```
2. 初始化列表:可以在构造函数的初始化列表中对结构体成员进行初始化。例如:
```cpp
class MyClass {
public:
struct MyStruct {
int num;
char ch;
};
MyClass() : myStruct{0, 'A'} {}
private:
MyStruct myStruct;
};
```
3. 成员初始化器:可以在类的定义中直接对结构体成员进行初始化。例如:
```cpp
class MyClass {
public:
struct MyStruct {
int num;
char ch;
};
MyStruct myStruct{0, 'A'};
};
```
这些方法都可以用来初始化C++类中的结构体成员。根据具体的需求和代码风格,选择适合的方式进行初始化。
c++ 类中使用结构体
在C++中,结构体可以像类一样用作类的数据成员、函数参数和返回类型。结构体可以在类的公共或私有部分声明,以实现数据的封装。以下是一个简单的例子:
```
#include <iostream>
using namespace std;
struct Person {
string name;
int age;
};
class Employee {
public:
Employee(Person p, double salary) {
person = p;
this->salary = salary;
}
void printInfo() {
cout << "Name: " << person.name << endl;
cout << "Age: " << person.age << endl;
cout << "Salary: " << salary << endl;
}
private:
Person person;
double salary;
};
int main() {
Person p = {"Alice", 25};
Employee e(p, 5000);
e.printInfo();
return 0;
}
```
在这个例子中,我们使用结构体`Person`来存储雇员的姓名和年龄,然后将其作为一个私有成员变量存储在`Employee`类中。在构造函数中,我们将传入的`Person`对象和工资存储在`Employee`对象中。在`printInfo()`函数中,我们输出了雇员的姓名、年龄和工资。