讓說我有一個基本的2D Vector類像給人一種功能的實現在C以上的名稱++
class vector2
{
int x, y;
}
這兩個值可以用來表示一個位置以及寬度和高度。 C++是否爲我提供了一個暗示函數,例如vector2::getXpos()
,然後還定義了vector2::getWidth()
,並讓它使用相同的實現。
我知道我可以使這兩個函數內聯,但編譯器可能決定不內聯這些函數。所以如果getWidth
只叫getXpos
你最終會有兩個函數調用。什麼,我會想用這個
更relistic例子是getLength()
和企業風險管理... getSpan()
(當你說40" 電視在這裏像一個屏幕的思維)
我會假設,這將是像一個特殊的函數定義一個簡單的例子......我發現this page但是這聽起來就像是一個C的功能...和黑客攻擊的一位得到工作。
編輯
我不是在問我的機制n線功能...我basicaly想做點什麼功能相同
class MyClass
{
void ActaullyDoStuff();
public:
void foo(){ActaullyDoStuff();}
void bar(){ActuallyDoStuff();}
}
,但在那裏我可以只寫類似
class MyBetterClass
{
public:
void foo(){ /* BLOCK OF CODE */ }
void bar(){ /* DO WHAT EVER foo() DOES */ }
}
我想bar()
要的只是做foo()
使同另一種方式根據情況,功能代碼可以有不同的更合適的名稱。
您確定要使用的位置以及尺寸相同的類型,只是因爲他們碰巧在結構上*相同嗎?聽起來對我來說是個壞主意。我會定義兩種不同的類型。這使得客戶端代碼的意圖更加清晰。 – fredoverflow 2010-11-14 15:09:08
「我不是在問內嵌函數的機制......」,也許不是......但內聯函數做你想做的事情...... – ronag 2010-11-14 16:05:21