草庐IT

private_class_greeter

全部标签

c++ - 错误 : expected primary-expression before ‘>’ : templated function that try to uses a template method of the class for which is templated

这个问题在这里已经有了答案:WhereandwhydoIhavetoputthe"template"and"typename"keywords?(8个答案)关闭8年前。在使用模板和仿函数(未出现在这个问题中)时,我最终遇到了以下简化的问题。以下代码(也可用here)classA{public:templateboolisGood(intin)const{constTf;returninbooltryEvaluator(T&evaluator,intvalue){returnevaluator.isGood(value);}intmain(intargc,constchar*argv[]

c++ - "class ClassName;"放在其他类定义的头文件中是什么意思?

我对这行代码classTreeItem;有点困惑。classTreeItem;在本文件中未包含的其他文件中定义。我必须在一本书中查找这个问题,但我确信这个问题的答案非常简单。#ifndefTREEMODEL_H#defineTREEMODEL_H#include#include#includeclassTreeItem;//here,whatdoesthisdo??//![0]classTreeModel:publicQAbstractItemModel{...public:...private:...};//![2]#endif//TREEMODEL_H

c++ - 关键字 'class' 和 c++ 中的类名之间可以有什么吗?

我遇到了一段C++代码,其中类的定义如下:classMACROclass_name{public:private:} 最佳答案 在标准C++11及更高版本中,class和类名之间可以有属性。宏也有可能(甚至更有可能)扩展为用于编译代码的特定编译器支持的非标准属性语法。 关于c++-关键字'class'和c++中的类名之间可以有什么吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions

c++ - 在继承 : Can I override base class data members?

假设我有如下两个类:ClassA{public:..private:intlength;}ClassB:publicClassA{public:..private:floatlength;}我想知道的是:是否允许覆盖基类数据成员?如果是,这是一种好的做法吗?如果不是,扩展类数据成员类型的最佳方法是什么?有一个类满足了我的需求,我想重用它。但是为了我的程序需要,它的数据成员应该是另一种类型。我有一些书,但它们都只涉及重写基类成员方法。 最佳答案 您可以使用模板化成员,即通用成员,而不是覆盖成员。您还可以声明一个类似union的VARI

c++ - 使用 not2 时将 struct vs class 作为 STL 仿函数

学习STL我写了一个简单的程序来测试仿函数和修饰符。我的问题是关于使用CLASS或STRUCT编写仿函数并尝试使用函数适配器对其进行操作的区别。据我在C++中的理解,CLASS和STRUCT之间的区别在于,在最后一种情况下,默认情况下成员是公共(public)的。这也是我在该站点的答案中多次阅读的内容。所以请解释为什么即使我在尝试使用not2修饰符时将所有成员(只是一个函数重载())声明为public,这段短代码也会编译失败。(我还没有尝试过其他修饰符,例如粘合剂)#include#include#include#includeusingnamespacestd;templatevoi

c++ - 可以从外部访问私有(private)运营商吗?

即如果我在我的类中的私有(private)部分中定义运算符==和+,它们可以从main访问吗?它在MSVS2008和2010中有效,但对我来说它似乎是编译器中的错误。是这样吗? 最佳答案 在私有(private)访问说明符下声明的函数或成员将无法在类成员函数之外访问。在C++中,类/结构/union有3个访问说明符。这些访问说明符定义了如何访问类的成员。当然,类的任何成员都可以在该类中访问(在同一类的任何成员函数中)。继续访问访问说明符的类型,它们是:Public-声明为Public的成员可通过类的对象从类外部访问。Protecte

c# - 如何在 C# 中使用 Private Inheritance aka C++ 以及为什么它不存在于 C# 中

我知道C++支持私有(private)继承,C#只支持公有继承。我还看到一篇文章说私有(private)继承通常定义类之间的HAS-A关系和某种聚合关系。编辑:私有(private)继承的C++代码:“Carhas-aEngine”关系也可以用私有(private)继承来表达:classEngine{public:Engine(intnumCylinders);voidstart();//StartsthisEngine};classCar:privateEngine{//Carhas-aEnginepublic:Car():Engine(8){}//InitializesthisCa

c++ - 为什么这个友元函数不能访问私有(private)变量?

classStudent{public:Student(inttest):key(705){if(test==key){cout>testkey;Studentbob(testkey);printResult();}函数printResult似乎无法从Student类访问私有(private)变量allow。我是在错误的地方制作了printResult原型(prototype)还是语法错误?据我所知,我们可以在类里面的任何地方为friend制作原型(prototype)。 最佳答案 printResult不是成员函数,所以你需要给它

c++ - `void f1(const Class &c)` 和 `void f2(Class const &c)` 有什么区别?

下面这些函数有什么区别(看关键字const)?voidf1(constClass&c)和voidf2(Classconst&c) 最佳答案 没有区别。这两个版本可以互换。 关于c++-`voidf1(constClass&c)`和`voidf2(Classconst&c)`有什么区别?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7576223/

c++ - 子类如何使用与子类相同的方法名调用父类(super class)的方法?

#includeusingnamespacestd;classPerson{public:voidsing();};classChild:publicPerson{public:voidsing();};Person::sing(){cout 最佳答案 suzie.Person::sing(); 关于c++-子类如何使用与子类相同的方法名调用父类(superclass)的方法?,我们在StackOverflow上找到一个类似的问题: https://stack