将下面程序中的友元函数改为普通函数,并在Cat类中增加成员函数,访问Cat类中私有的数据成员#include<iostream> using namespace std; class Cat; void SetValue(Cat&, int); void SetValue(Cat&, int,int); class Cat { private: int weight; int age; public: friend void SetValue(Cat&, int); friend void SetValue(Cat&, int,int); }; void SetValue(Cat& ta, int w) { ta.weight = w; } void SetValue(Cat& ta, int w,int a) { ta.weight = w; ta.age = a; } int main() { Cat mimi; SetValue(mimi, 3); SetValue(mimi, 5, 4); return 0; }
时间: 2023-06-02 21:07:04 浏览: 238
将下面程序中的友元函数改为普通函数,可以将友元函数声明移动到Cat类中,同时将函数中需要访问Cat类私有成员的部分改为调用Cat类的公有成员函数。在Cat类中增加成员函数,可以定义一个公有成员函数来访问私有数据成员。
例如:
```c++
#include <iostream>
class Cat {
private:
std::string name;
int age;
public:
void setName(std::string n) { name = n; }
std::string getName() const { return name; }
void setAge(int a) { age = a; }
int getAge() const { return age; }
void printInfo() const {
std::cout << "Name: " << name << ", Age: " << age << std::endl;
}
friend void changeAge(Cat&, int);
};
void changeAge(Cat& c, int newAge) {
c.age = newAge;
}
int main() {
Cat cat;
cat.setName("Kitty");
cat.setAge(2);
cat.printInfo();
changeAge(cat, 3);
cat.printInfo();
return 0;
}
```
改为:
```c++
#include <iostream>
class Cat {
private:
std::string name;
int age;
public:
void setName(std::string n) { name = n; }
std::string getName() const { return name; }
void setAge(int a) { age = a; }
int getAge() const { return age; }
void printInfo() const {
std::cout << "Name: " << name << ", Age: " << age << std::endl;
}
void changeAge(int newAge) { age = newAge; }
};
int main() {
Cat cat;
cat.setName("Kitty");
cat.setAge(2);
cat.printInfo();
cat.changeAge(3);
cat.printInfo();
return 0;
}
```
阅读全文