我有一个我想在不同的类中使用的函数。这可能吗?
示例:
int getNumber()
{
// do something here that will use some values like:
int number = num * pi;
return number;
}
class Human
{
int num;
// other member
int getNumber(); // same as above
}
class Robot
{
int num;
// other member
int getNumber(); // same as above
}
getNumber()
函数可以简短为return num;
,或者长取决于函数内部的计算。
num
内的getNumber()
值是num
和Human
类的Robot
成员。虽然,这些类没有父子关系。
答案 0 :(得分:3)
这当然很容易。虽然C ++中的委托没有甜蜜的语法(遗憾的是,这带来了许多滥用继承......)。
1。自由功能方式
int transformNumber(int num) { return num * pi; }
class Human {
public:
int getNumber() const { return transformNumber(num); }
private:
int num;
};
2。构成方式
struct NumberThing {
int num;
int getNumber() { return num * pi; }
};
class Human {
public:
int getNumber() { thing.getNumber(); }
private:
NumberThing thing;
};
选择你最喜欢的。
答案 1 :(得分:0)
创建一个具有此功能的类,并扩展使用该功能的其他类。
答案 2 :(得分:-1)
这是一个使用继承的好例子。两个对象的共同点通常意味着它们实际上是更通用类的子类:
class Being
{
int num;
int getNumber() {/* .. */}
}
class Robot: public Being
{
}
class Human: public Being
{
}