朋友函数,预期的主表达式之前.令牌
Friend Function, expected Primary Expression before . token
所以在单独的头文件中有两个类
客户。h
using namespace std;
#include <iostream>
class Customer{
friend void Display();
private:
int number, zipCode;
public:
Customer(int N, int Z){
number = N;
zipCode = Z;
}
};
城市。h使用命名空间std;# include# include"Customer.h"
class City{
friend void Display();
private:
int zipCode;
string city, state;
public:
City(int Z, string C, string S){
zipCode = Z;
city = C;
state = S;
}
};
my main.cpp如下
#include "City.h"
#include "Customer.h"
void Display(){
cout<<"Identification Number: "<<Customer.number<<endl
<<"Zip Code: "<<Customer.zipCode<<endl
<<"City: "<<City.city<<endl
<<"State: "<<City.state<<endl;
}
int main() {
Customer A(1222422, 44150);
City B(44150, "Woklahoma", "Kansas");
Display();
}
我很擅长c++的基础知识,但这是我不理解的地方,所以我的具体问题是....为什么对于我的Display函数的四行,编译器告诉我"error: expected primary-expression before "。令牌"
提前感谢Macaire
Customer
为类型。您需要该类型的对象来访问它的number
成员(其余行也是如此)。
您可能打算将Customer
和City
作为Display
的参数:
void Display(Customer customer, City city){
cout<<"Identification Number: "<<customer.number<<endl
<<"Zip Code: "<<customer.zipCode<<endl
<<"City: "<<city.city<<endl
<<"State: "<<city.state<<endl;
}
然后将Customer
和City
对象传递给该函数:
Display(A, B);
您正在尝试访问来自类名的数据成员
Customer.number
你不能那样做。您需要一个Customer
实例:
Customer c;
std::cout << c.number;
您可能想将Display()
更改为
void Display(const Customer& c);
然后像这样使用:
Customer A(1222422, 44150);
Display(A);
和City
类似。
相关文章:
- holeMenuProgram.cpp:38:1 错误:'}'令牌之前的预期主表达式
- (错误:令牌之前'<<'预期的主表达式)
- 错误:C++中']'令牌之前的预期主表达式
- 错误:令牌之前的预期主表达式'&&'
- 令牌之前']'预期的主表达式?
- 错误:令牌之前的预期主表达式'/'
- 正则表达式使用提升令牌迭代器在单引号和括号之间提取值
- 令牌之前')'预期的主表达式(需要"template"消除歧义器)
- 错误:令牌之前的预期主表达式'<':Arduino RGB 舞灯
- 令牌之前出现错误')'主表达式
- C++错误:错误:令牌之前的预期主表达式'||'
- 令牌问题之前'*'预期的主表达式
- 令牌之前的预期表达式']'?C
- 退出状态 1 令牌之前的预期主表达式'.'
- C++错误:";"之前应为主表达式使用Cmake的令牌
- 向量空Push_back在令牌之前调用'{'预期的主表达式
- 令牌调用之前'...'预期的主表达式 模板化类的模板化方法
- 错误 预期主表达式在 ';" 之前令牌 C++
- 令牌之前的预期主表达式'-'
- 令牌之前的预期主表达式'<'