定义设置和访问私有成员的setName(),getName()
时间: 2023-06-10 16:05:39 浏览: 52
setName() 和 getName() 是两个成员函数,用于设置和访问类的私有成员变量,一般用于保护类数据不被外部直接访问和修改。在C++中,可以使用类的访问修饰符 private 来声明私有成员变量和成员函数。例如:
```
class Person {
private:
string name;
public:
void setName(string n) {
name = n;
}
string getName() {
return name;
}
};
```
在上面的代码中,setName() 和 getName() 成员函数都是公有成员函数,可以被外部访问。而 name 是一个私有成员变量,只能在类的内部使用,无法在类外直接访问。通过使用 setName() 和 getName() 成员函数,可以在类的外部间接访问私有成员变量 name。
相关问题
用java定义一个类Dog,要求具有String型的name、int型的age两个private访问控制的成员变量,同时提供两个public的成员变量的访问方法getName()、getAge(),两个成员变量设置方法setName(String newName)、setAge(int newAge)
以下是定义一个类Dog的Java代码:
```
public class Dog {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String newName) {
name = newName;
}
public int getAge() {
return age;
}
public void setAge(int newAge) {
age = newAge;
}
}
```
以上代码定义了一个名为Dog的类,它具有两个私有成员变量name和age。通过公共访问方法getName()和getAge(),可以获取这两个成员变量的值;通过公共访问方法setName()和setAge(),可以设置这两个成员变量的值。
声明一个学生类Student,设计私有数据成员: 年龄 age; 姓名 name;静态数据成员:学生人数 count; 定义4个公有成员函数:参数带默认值Ɛ, “no”)的构造函数,改变学生姓名的函数setName,获取数据成员函数getAge, getName;定义静态成员函数showCount;定义友元函数:修改学生年龄 changeAge。
以下是学生类Student的定义:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Student {
private:
int age;
string name;
static int count;
public:
Student(int age = 0, string name = "no") {
this->age = age;
this->name = name;
count++;
}
void setName(string name) {
this->name = name;
}
int getAge() {
return age;
}
string getName() {
return name;
}
static void showCount() {
cout << "Number of students: " << count << endl;
}
friend void changeAge(Student& s, int age);
};
int Student::count = 0;
void changeAge(Student& s, int age) {
s.age = age;
}
int main() {
Student s1(20, "Tom");
Student s2(22, "Jerry");
Student::showCount();
cout << s1.getName() << " is " << s1.getAge() << " years old." << endl;
changeAge(s1, 21);
cout << s1.getName() << " is " << s1.getAge() << " years old." << endl;
s2.setName("Lucy");
cout << s2.getName() << " is " << s2.getAge() << " years old." << endl;
return 0;
}
```
在上面的代码中,我们定义了一个学生类Student,其中包含私有数据成员age和name,以及一个静态数据成员count。age和name用于存储学生的年龄和姓名,count用于记录学生的数量。
我们还定义了4个公有成员函数:一个构造函数,一个改变学生姓名的函数setName,一个获取数据成员函数getAge和一个获取数据成员函数getName。构造函数有两个参数,其中age的默认值是0,name的默认值是"no"。
我们还定义了一个静态成员函数showCount,用于显示学生的数量。
最后,我们定义了一个友元函数changeAge,用于修改学生的年龄。在main函数中,我们创建了两个学生对象s1和s2,调用了它们的成员函数和静态成员函数,并调用了友元函数changeAge修改了s1的年龄。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)