- 論壇徽章:
- 0
|
- // ----------------------------------------------------------------------- Test.h
- #include <iostream>
- class Test
- {
- public:
- Test();
- ~Test();
-
- // 寫在這里不會報“multiple definition of”
- void test1(void)
- {
- std:: cout << "test1" << endl;
- }
-
- void test2(void);
-
- void test3(void);
- };
- // 如果寫Test.h的這里就會報“multiple definition of”
- void Test::test2(void)
- {
- std:: cout << "test2" << endl;
- }
- // 加了inline關鍵字的函數就不會報“multiple definition of”
- inline void Test::test3(void)
- {
- std:: cout << "test3" << endl;
- }
復制代碼- // ----------------------------------------------------------------------- Main.cpp
- #include "Test.h"
- int main(void)
- {
- Test t;
- t.testMethod();
- return 0;
- }
復制代碼
直接在類聲明中定義的test1是不是內聯函數?不管代碼塊多大總是內聯?
為什么test1(), test2()不會被提示multiple definition of,而test3()會被提示? |
|