法律功能参数

时间:2015-07-31 22:02:51

标签: c++ function

在使用C ++时,我开始想知道像sizeof(int)这样的代码是如何工作的。我意识到sizeof是一个运算符,而不是一个函数,但它仍然让我想知道......像myFunc(double)这样的代码是合法的吗?你能将intMyClass之类的纯粹类型传递给函数吗?不可否认,我看不到太多申请,但我只是想知道。

2 个答案:

答案 0 :(得分:3)

不,你不能。参数是expressions,而C ++类型不是表达式。

模板用于"类型参数",但它们仅在编译时才会出现。 (见上面的@Banex和@clcto。)

答案 1 :(得分:2)

sizeof之类的运营商之所以有效,是因为语言表明他们会这样做。

并非所有内容都是一个类似函数的构造,您可以重载或重新创建自己。您不能创建自己的带有类型名称的运算符,就像您不能创建自己的基本类型或声明语法一样。

你不能在你的C ++程序中重写sizeof并在那里使用它(虽然它在编译器中的底层实现通常用C ++编写!但是在另一层抽象中)。

这里没有魔力;只是生活中的事实。