c++语句中cout<<"A::func1()"<<endl中为啥加引号

2025-03-19 10:22:38
推荐回答(4个)
回答1:

cout<<"A::func1()"< 是将其当做字符串

以上语句输出:
B::func1()
A::func2()

原因:这个考的是类的多态和子类重写父类方法的一个题。
func1在父类A中是一个虚函数,func2不是虚函数,在子类B中被重写
多态中,可以用父类的指针指向子类的对象,并且根据传入的子类对象,调用相应的函数,这个就很好的实现了类的多态性,在实际应用中往往用于定义一个公共接口。所以因为传入的子类B的对象,所以pa->func1(); 结果为:B::func1()
重写是一种覆盖父类方法的应用,在这个题中,它与类的多态性不同,重写只根据当前指针类型和什么,就调用哪个类中的方法,这里用的是父类A的指针,所以pa->func2();的结果为:A::func2()

回答2:

加引号就会输出引号里面的字符,不加引号就是输出变量。一般加引号是为了看起来明了。

回答3:

为了以字符串形式输出,加引号的话输出就是A::func1()。
例如,cout<<"你好"<

回答4:

做字符串输出