我是使用C ++的新手。我需要将一个类的实例声明为另一个类中函数的参数,并将参数实例声明为朋友。我用一个例子说明。
public static Integer[] optimizedbubbleSort(Integer[] input){
long startTime = System.nanoTime();
boolean swapped = true;
for(int pass=input.length-1; pass>=0 && swapped; pass--){
swapped = false;
for(int i=0; i<pass; i++){
if(input[i]>input[i+1]){
int temp = input[i];
input[i] = input[i+1];
input[i+1] = temp;
swapped = true;
}
}
}
System.out.println("Time taken for OPTIMIZED bubbleSort: "+(System.nanoTime() - startTime));
return input;
}
在上面的例子中,我需要声明类other_foo作为foo的朋友,这样我就可以使用foo类'private function'了“。我已经阅读了许多其他参考文献,但没有明确的指南,无论它是否真的可行。如果没有,你能否建议一个解决方法? 我试图在类foo定义中将other_foo声明为friend,但编译器向other_foo抛出了一个错误,即私有方法无法访问。我也尝试在参数本身中将该实例声明为“friend foo f”,但编译器为此抛出了一个错误。我在哪里真正需要声明该类other_foo是类foo的朋友类?
答案 0 :(得分:0)
*
现在other_foo可以访问class foo{
private:
void a(){
// function definition
}
friend class other_foo;
};
class other_foo{
public:
void b(foo f){
// function definition
}
};
的私人会员。类名称前面的括号是不必要的,并且在类定义之后添加了foo
。