我试图使用重载的提取运算符简单地cout向量的元素.矢量contians Point,它只是一个包含两个双精度的结构.vector是一个名为Polygon的类的私有成员,所以继承我的Point.h
#ifndef POINT_H
#define POINT_H
#include <iostream>
#include <string>
#include <sstream>
struct Point
{
double x;
double y;
//constructor
Point()
{
x = 0.0;
y = 0.0;
}
friend std::istream& operator >>(std::istream& stream, Point &p)
{
stream >> std::ws;
stream >> p.x;
stream >> p.y;
return stream;
}
friend std::ostream& operator << (std::ostream& stream, Point &p)
{
stream << p.x << p.y;
return stream;
}
};
#endif
Run Code Online (Sandbox Code Playgroud)
我的Polygon.h
#ifndef POLYGON_H
#define POLYGON_H
#include "Segment.h"
#include <vector>
class Polygon
{ …Run Code Online (Sandbox Code Playgroud) 这整个晚上一直在我的头上敲我的头.
我只是试图像这样声明一个ifstream对象....
ifstream inputStream;
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
Error 5 error LNK2019: unresolved external symbol __imp___CrtDbgReportW referenced in function "public: char const & __thiscall std::_String_const_iterator<char,struct std::char_traits<char>,class std::allocator<char> >::operator*(void)const " (??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ) C:\Users\Julz\Desktop\My Dropbox\3rdYear\2ndSemester\Games Prog\Game\DemocracyInvaders\Score.obj DemocracyInvaders
Run Code Online (Sandbox Code Playgroud)
我可以把它声明为像这样的指针......
ifstream *inputStream;
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试读取文件数据时,这只会令人头疼,我想我应该弄清楚为什么在尝试一些被黑客攻击的修复之前基本声明不起作用.
我正在使用SDL并在标题中包含以下几个文件...
#ifndef SDL_GRAPHICS_H //just a class I'm using to initialise my SDL stuff
#define SDL_GRAPHICS_H
#include <stdio.h>
#include <iostream>
#include <vector>
#include <fstream>
#include "SDL.h"
#include "SDL_ttf.h"
Run Code Online (Sandbox Code Playgroud)
我已经尝试过交换SDL包含C++以上的内容以及各种各样的变化,没有.我的标题包括所有正确的顺序,我想如果包含问题我不能将ifstream声明为指针?
哦,我尝试过使用fstream甚至只是声明ofstream,所有相同的错误.另外,我尝试它的类(源或标题)并不重要,总是一样的.甚至尝试在我的驱动程序(主)文件中声明它直接包含在其中,没有骰子......完全迷失在这里!