C++如何在.h头文件中直接定义函数
2017-10-24 22:56
447 查看
出发点:方便。把辅助函数直接写在头文件中,需要就直接include。
可如果普通的定义,一旦文件被2个cpp引用,就会有multiple definition错误。
鉴于头文件中可以定义一个类,包括在类中定义函数。
再考虑到friend关键词,可以让函数作用域扩展到包含该类定义的作用域
于是得出以下形式的方式:
如果不在外部先声明,会找不到这个函数。用struct也行。
先声明,然后在一个辅助类中以友元方式写入函数定义。
从此肆无忌惮的include。
不过不知道会不会有什么副作用。。。
可能实际中不会需要这种方便的吧,还是乖乖的把定义写在cpp,甚至可以直接编成库了……
只是project中又要添加各种目录。这样做只要头文件目录就够了……
可如果普通的定义,一旦文件被2个cpp引用,就会有multiple definition错误。
鉴于头文件中可以定义一个类,包括在类中定义函数。
再考虑到friend关键词,可以让函数作用域扩展到包含该类定义的作用域
于是得出以下形式的方式:
void func(); // declare class anyway { friend void func() { // body } };
如果不在外部先声明,会找不到这个函数。用struct也行。
先声明,然后在一个辅助类中以友元方式写入函数定义。
从此肆无忌惮的include。
不过不知道会不会有什么副作用。。。
可能实际中不会需要这种方便的吧,还是乖乖的把定义写在cpp,甚至可以直接编成库了……
只是project中又要添加各种目录。这样做只要头文件目录就够了……
相关文章推荐
- c++ 模版函数的定义和实现放在一个文件中 .
- C++中类型注册有的时候,函数找不到定义,可能是相应的头文件中防止重定义的声明,还是用原来的,没有做相应的更新
- C\C++小知识: 如何引用一个已经定义过的全局变量 与 全局变量可不可以定义在可被多个.C文件包含的头文件中
- C++泛型编程技巧 - 如何判断输入类型是否定义了特定的成员函数
- C++中类定义可以写在.h文件,但函数定义却不行
- [原创]Enterprise Architecture V7.5 C++代码生成时,头文件中函数声明没有注释,CPP中函数定义却有注释。
- C++学习:inline的函数或者成员函数一定要定义在头文件中
- c++ 模版函数的定义和实现放在一个文件中
- C++使用static的错误:无法解析的外部符号、“static”不应在文件范围内定义的成员函数上使用
- C++:为什么inline函数的定义要放在头文件里 + inline和宏定义的区别(暂未体会到)
- 汇编文件(*.S)如何调用C++文件中的函数
- C++中inline函数的定义为什么要放在头文件中?头文件中“只定义一份”是什么意思?const object 和inline函数是“一次定义规则”
- C++学了这么多年,你也许不知道为什么类定义要放在.h文件,类实现放在cpp文件。它们如何关联?
- c++ 模版函数的定义和实现必须放在一个文件中
- C++使用static的错误:无法解析的外部符号、“static”不应在文件范围内定义的成员函数上使用 .
- 如何用python的装饰器定义一个像C++一样的强类型函数
- c++ 模版函数的定义和实现放在一个文件中
- c++ 头文件中定义函数的优缺点
- 如果已经在一个类中定义了全局函数,在其它类文件中如何调用它?
- 在.c文件中调用c++定义的函数