【发布时间】:2013-08-22 06:34:22
【问题描述】:
我认为问题的标题有点混乱,所以我会解释一下。
让我们看看这个非常简单的代码。
#include <iostream>
class C {
public:
int val;
C(){
val = 2;
}
void changeVal(int i){
val = i;
}
};
void printout(int val){
std::cout << "int val : " << val << std::endl;
}
void printout(C c){
std::cout << "class val : " << c.val << std::endl;
}
int main()
{
C c;
printout(1);
printout(c);
//printout(C()); // ok, I can understand it.
//printout(C().changeVal(0)); /// ?????
return 0;
}
如您所见,函数 'printout' 用于打印输入参数。 我的问题是,当我使用 int 值(默认数据类型)时,我只需输入函数实数'1',但是,当我使用我的类实例('class C')时,我必须声明我的类函数之前的实例。
那么,有没有办法让这种 1 行中的函数参数的非默认数据类型?
实际情况是,我必须使用 4x4 矩阵作为某些函数的参数。 出于这个原因,我必须制作一些矩阵,并对其进行初始化(使其为零)并使用它。 但如果我能用 1 行代码完成同样的工作,我的源代码会比现在更清晰。
这是我的问题。我希望你能理解我的问题。谢谢。
【问题讨论】:
-
我删除了 C 标签。使用
class和<iostream>意味着这个问题只涉及C++ -
你的意思是你能做到吗
printout(C()) -
顺便说一句,不确定“默认数据类型”是什么意思,“内置语言数据类型/原始类型”会更好
-
@simonc 感谢您的指导。我不熟悉这个系统
-
@KarthikT 哦,这种表示方式要好得多。谢谢。