关于C++头文件中函数的宣言

关于C++头文件中函数的声明
本帖最后由 tudou12345679 于 2014-07-11 00:19:39 编辑
我在书中看到

void display(const vector<int>&, ostream&=cout);

这样的一个声明,这里的两个'&‘字符的后面,不写参数,可以吗?为什么我在编译的时候过不去?


#include <iostream>
#include <vector>
#include <fstream>

using namespace std;

void display(const vector<int> &, ostream &= cout);


请问这样的声明是否有必要?
我用的IDE:codeblocks,gcc

函数的定义在NumericSeq.cpp中。

------解决方案--------------------
你的问题应该是少了
using namespace std;
而且感觉你头文件中的声明和cpp的不一样
------解决方案--------------------
using std::vector;
------解决方案--------------------
void display(const std::vector<int> & ,ostream & = std::cout);
------解决方案--------------------
引用:
Quote: 引用:

可以不写参数。具体出的什么错误?


------解决方案--------------------
=== Build: Debug in 20140710_TS_01 (compiler: GNU GCC Compiler) ===
------解决方案--------------------

D:\Essential C++\20140710_TS_01\NumericSeq.h
------解决方案--------------------
21
------解决方案--------------------
error: 'vector' does not name a type
------解决方案--------------------

D:\Essential C++\20140710_TS_01\NumericSeq.h
------解决方案--------------------
21
------解决方案--------------------
error: ISO C++ forbids declaration of 'parameter' with no type [-fpermissive]
------解决方案--------------------

D:\Essential C++\20140710_TS_01\NumericSeq.h
------解决方案--------------------
21
------解决方案--------------------
error: expected ',' or '...' before '<' token
------解决方案--------------------

D:\Essential C++\20140710_TS_01\main.cpp
------解决方案--------------------
In function 'int main()':
------解决方案--------------------

D:\Essential C++\20140710_TS_01\main.cpp
------解决方案--------------------
11
------解决方案--------------------
error: invalid conversion from 'std::vector<int>*' to 'int' [-fpermissive]
------解决方案--------------------

D:\Essential C++\20140710_TS_01\NumericSeq.h
------解决方案--------------------
21
------解决方案--------------------
error:   initializing argument 1 of 'void display(int)' [-fpermissive]
------解决方案--------------------


------解决方案--------------------
=== Build failed: 5 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===
------解决方案--------------------



编译器不认识 vector。
#include <vector>
然后,用的时候写:
std::vector