Lựa chọn của bạn là
.210
mẫu THAY THẾ 1
Bạn có thể sử dụng
template <typename T>
T myfunction(T t)
{
return t + t;
}
THAY THẾ 2
chức năng Plain quá tải
bool myfunction(bool b)
{
}
int myfunction(int i)
{
}
Bạn cung cấp một chức năng khác nhau cho mỗi loại mỗi đối số bạn mong đợi. Bạn có thể trộn nó thay thế 1. Trình biên dịch sẽ là một trong những quyền cho bạn.
THAY THẾ 3
Bạn có thể sử dụng kết hợp
union myunion
{
int i;
char c;
bool b;
};
myunion my_function(myunion u)
{
}
THAY THẾ 4
Bạn có thể sử dụng đa hình. Có thể là một overkill cho int, char, bool nhưng hữu ích cho các loại lớp phức tạp hơn.
class BaseType
{
public:
virtual BaseType* myfunction() = 0;
virtual ~BaseType() {}
};
class IntType : public BaseType
{
int X;
BaseType* myfunction();
};
class BoolType : public BaseType
{
bool b;
BaseType* myfunction();
};
class CharType : public BaseType
{
char c;
BaseType* myfunction();
};
BaseType* myfunction(BaseType* b)
{
//will do the right thing based on the type of b
return b->myfunction();
}
Nguồn
2011-12-25 00:30:42
bạn cần phải nhìn vào các mẫu –
nó được gọi là [mẫu] (http: //www.iis .sinica.edu.tw/~ kathy/vcstl/templates.htm) –
@SergioTulentsev Liên kết của bạn đưa ra lỗi 403 – pkqxdd