Problem

今天在完成一份C++作业时,遇到了一个问题:

已经将函数作为友元放在了Port类,在分文件编写时仍然提示无法访问类中的私有成员

image1

Solve

在头文件中加入两行代码,这可能也是我的一个习惯问题,iostream只在方法文件中添加

port.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef PORT_H
#define PORT_H

#include <iostream> //头文件中务必加入这两行代码
using namespace std;//****

class Port
{
private:
char* brand;
char style[20];
int bottles;
public:
Port(const char* br = "none", const char* st = "none", int b = 0);
Port(const Port& p);
virtual ~Port() { delete[]brand; }
Port& operator = (const Port& p);
Port& operator += (int b);
Port& operator-=(int b);
int Bottlecount() const { return bottles; }
virtual void show() const;
friend ostream& operator<<(ostream& os, const Port& p);
};

#endif