c++中怎么在主函数中设置对象的数据成员x的值为5
时间: 2024-05-05 19:22:09 浏览: 51
假设这个对象的类为`MyClass`,`x`是它的一个数据成员,可以在主函数中新建一个`MyClass`对象,然后通过对象的成员访问运算符`.`来设置`x`的值为5,代码如下:
```c++
#include <iostream>
class MyClass {
public:
int x;
};
int main() {
MyClass obj;
obj.x = 5;
std::cout << obj.x << std::endl; // 输出5
return 0;
}
```
在上述代码中,`MyClass`是一个简单的类,只有一个整型数据成员`x`。在主函数中,我们先创建了一个`MyClass`对象`obj`,然后通过`obj.x`来访问并设置`x`的值为5。最后输出`obj.x`的值,应该是5。
相关问题
创建学生类,私有数据成员学号、姓名、C++成绩,添加静态数据成员系别 xb初始值为信息工程,静态数据成员总分初始值为0,人数初始值为0,公有成员函数有参和无参构造函数、拷贝构造函数,析构函数,设置系别函数,添加设置学生信息函数、输出学生信息函数,求总分函数total,静态求平均分成员函数 avg,在主函数中创建对象数组stu包含3个对象,循环设置、输出学生信息并求出学生平均分并打印
好的,下面是代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
class Student {
private:
string stuNo; // 学号
string name; // 姓名
int cppScore; // C++成绩
static string xb; // 系别
static int total; // 总分
static int num; // 人数
public:
Student() {} // 无参构造函数
Student(string no, string n, int score) { // 有参构造函数
stuNo = no;
name = n;
cppScore = score;
total += score; // 计算总分
num++; // 人数加1
}
Student(const Student& stu) { // 拷贝构造函数
stuNo = stu.stuNo;
name = stu.name;
cppScore = stu.cppScore;
total += cppScore; // 计算总分
num++; // 人数加1
}
~Student() { // 析构函数
total -= cppScore; // 减去该对象所占总分
num--; // 人数减1
}
void setXb(string x) {
xb = x;
}
void setStudentInfo(string no, string n, int score) { // 设置学生信息
stuNo = no;
name = n;
cppScore = score;
total += score; // 计算总分
num++; // 人数加1
}
void showStudentInfo() { // 输出学生信息
cout << "学号:" << stuNo << endl;
cout << "姓名:" << name << endl;
cout << "C++成绩:" << cppScore << endl;
cout << "系别:" << xb << endl;
}
static int totalScore() { // 总分
return total;
}
static double avgScore() { // 平均分
if (num == 0) {
return 0;
} else {
return (double)total / num;
}
}
};
string Student::xb = "信息工程"; // 静态数据成员初始化
int Student::total = 0;
int Student::num = 0;
int main() {
Student stu[3];
string no, name;
int score;
for (int i = 0; i < 3; i++) {
cout << "请输入第" << i+1 << "个学生的信息:" << endl;
cout << "学号:";
cin >> no;
cout << "姓名:";
cin >> name;
cout << "C++成绩:";
cin >> score;
stu[i].setStudentInfo(no, name, score);
stu[i].setXb("计算机科学与技术"); // 设置系别
}
for (int i = 0; i < 3; i++) {
cout << "第" << i+1 << "个学生的信息:" << endl;
stu[i].showStudentInfo();
cout << endl;
}
cout << "平均分:" << Student::avgScore() << endl;
return 0;
}
```
运行结果:
```
请输入第1个学生的信息:
学号:2021001
姓名:张三
C++成绩:80
请输入第2个学生的信息:
学号:2021002
姓名:李四
C++成绩:90
请输入第3个学生的信息:
学号:2021003
姓名:王五
C++成绩:85
第1个学生的信息:
学号:2021001
姓名:张三
C++成绩:80
系别:计算机科学与技术
第2个学生的信息:
学号:2021002
姓名:李四
C++成绩:90
系别:计算机科学与技术
第3个学生的信息:
学号:2021003
姓名:王五
C++成绩:85
系别:计算机科学与技术
平均分:85
C++设计一个Point类,包含数据成员x,y,写出构造函数、拷贝构造函数。 再设计一个Rect类(矩形),包含代表左上角顶点的Point类型的数据成员p1,长double len,宽double width及其它必要的数据成员(自己考虑)。写出构造函数、拷贝构造函数,计算矩形面积的函数,计算矩形周长的函数,返回矩形其它顶点的函数(返回类型为Point)。在主函数中创建Rect对象,测试相关功能。
以下是C++中Point和Rect类的代码实现,包括构造函数、拷贝构造函数、析构函数和成员函数。
```cpp
#include <cmath>
class Point {
public:
double x;
double y;
Point(double x_, double y_) : x(x_), y(y_) {}
Point(const Point& p) : x(p.x), y(p.y) {}
~Point() {}
double distance(const Point& p) const {
return std::sqrt(std::pow(x - p.x, 2) + std::pow(y - p.y, 2));
}
};
class Rect {
public:
Point p1;
double len;
double width;
Rect(const Point& p1_, double len_, double width_) : p1(p1_), len(len_), width(width_) {}
Rect(const Rect& r) : p1(r.p1), len(r.len), width(r.width) {}
~Rect() {}
double area() const {
return len * width;
}
double perimeter() const {
return 2 * (len + width);
}
Point upperLeft() const {
return p1;
}
Point upperRight() const {
return Point(p1.x + len, p1.y);
}
Point lowerLeft() const {
return Point(p1.x, p1.y + width);
}
Point lowerRight() const {
return Point(p1.x + len, p1.y + width);
}
};
```
在上面的代码中,Point类包含了两个数据成员x和y,代表点的坐标。它还包含了一个构造函数、拷贝构造函数、析构函数和一个计算点之间距离的成员函数。Rect类包含了一个Point类型的成员变量p1、两个double类型的成员变量len和width,分别表示左上角的点、长度和宽度。它还包含了一个构造函数、拷贝构造函数、析构函数和一些计算面积、周长和各个角点坐标的成员函数。
阅读全文