gpt4 book ai didi

java - C++ 与 Java 中的名称隐藏

转载 作者:太空狗 更新时间:2023-10-29 20:39:12 26 4
gpt4 key购买 nike

<分区>

前几天我学到了一些关于 C++ 的新知识;以下不起作用:

class ParentClass {
public:
void someFunction() { printf("ParentClass::someFunction()"); }
};

class ChildClass : public ParentClass {
public:
void someFunction(int a) { printf("ChildClass::someFunction(int)"); }
};

int main() {
ChildClass childClass;
// This call is a compiler error.
// I would expect it to call ParentClass::someFunction()
childClass.someFunction();
}

然而,在 Java(以及其他语言)中做完全相同的事情正如我所期望的那样:

public class ParentClass {
public void someFunction() { System.out.println("ParentClass"); }
}

public class ChildClass extends ParentClass {
public void someFunction(int a) { System.out.println("ChildClass"); }
}

public class Main {
public static void main(String[] args) {
ChildClass childClass = new ChildClass();
// The following prints "ParentClass"
childClass.someFunction();
}
}

那么在 C++ 中给出了什么?为什么这会隐藏名称而不是重载它?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com