gpt4 book ai didi

c++ - 如何访问私有(private)成员 - 具有友元函数的数组

转载 作者:行者123 更新时间:2023-11-30 03:44:54 25 4
gpt4 key购买 nike

我是 C++ 的新手,我编写代码来了解友元函数的工作原理。这里有两个类,我在 friend 函数中向用户询问参数,如果它们与成员变量的值相等,则显示这些参数。而且我无法访问其中一个私有(private)成员 - 带有国家名称的数组。在函数 int elcountry(element &e, supply s) 中,我试图显示来自特定国家/地区的特定类型的元素数量。错误是elCountry函数中的成员supply::country, (s.country[i])无法访问。我不知道如何使用 getCountry() 函数来访问私有(private)数组。

class element {
friend class supply;
private:
string name;
double value;
int serial;
public:
element();
int elCountry(element &e, supply &s);
double* nominals(element &e, supply &s);
string getName() {
return name;
}
int getSerial() {
return serial;
}
};
class supply {
private:
int serial;
string country[5];
int n;
public:
supply();
string* getCountry() {
string country = new string[5];
return country;
}
friend int elCountry(element &e, supply &s);
friend double* nominals(element &e, supply &s);
};
int elcountry(element &e, supply s){
string names, Country;
int n;
cout << "enter country = "; cin >> Country;
cout << "enter name of the element = "; cin >> names;
cout << "enter number of elements = "; cin >> n;
for (int i = 0; i < 5; i++) {
if (Country == s.country[i] && names == e.getName() && n == e.getSerial()) {
cout << "the country is " << count << endl;
cout << "the name is" << names << endl;
cout << "the number is " << n << endl;
}
}
return n;
}

最佳答案

两个函数的签名不匹配,它们不相关,根本不是friend函数。

friend int elCountry(element &e, supply &s);
~ ~
int elcountry(element &e, supply s){
~

请注意,名称也不匹配。

关于c++ - 如何访问私有(private)成员 - 具有友元函数的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35148088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com