草庐IT

class_list

全部标签

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++ - 避免 std::list 中的指针

我尽量避免有指针,而不是做std::list*>myList;voidaddElement(inta,intb){myList.push_back(newstd::pair(a,b));}我想我可以做类似的事情std::list>myList;voidaddElement(inta,intb){std::pairp(a,b);myList.push_back(p);}如果我对行为的理解正确,这应该存储对的拷贝,并在执行myList.clear()时自动删除它(与指针相反)。这是最好的方法吗?我可以期望编译器优化掉不必要的对象p吗? 最佳答案

c++ - std::list<>:l.begin() 之前的元素

简短的问题:使用与我不同的其他编译器(mingw32),以下代码是否不安全,或者是否可以使用?listl;/*addelements*/list::iteratori=l.begin();i--;i++;cout...或者换句话说:i是否定义为指向此之后的l.begin()? 最佳答案 是的,代码是不安全的。一旦您尝试在begin()之前移动,您就会导致未定义的行为。尝试“再次返回”可能行不通。 关于c++-std::list:l.begin()之前的元素,我们在StackOverflo

c++ - 加速 C++ : Can I write a program that sorts either a list or a vector using the same command?

我意识到std::sort函数需要使用随机访问迭代器,而列表具有双向迭代器。有一个关于此的问题:SortlistusingSTLsortfunction我正在努力回答AcceleratedC++书中的问题5-4以供家庭学习。5-4.Lookagainatthedriverfunctionsyouwroteinthepreviousexercise.Notethatitispossibletowriteadriverthatonlydiffersinthedeclarationofthetypeforthedatastructurethatholdstheinputfile.Ifyour

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++ std::list 排序保留顺序

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Isstd::list::sortstable?C++std::list排序函数是否保证保留列表中相等元素的顺序?例如。如果我们在列表中有对象A、B和C,并且比较运算符被重载,因此A==C和B

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

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

c++ - 如何解决 "class must be used when declaring a friend"错误?

classtwo;classone{inta;public:one(){a=8;}friendtwo;};classtwo{public:two(){}two(onei){cout我从Dev-C++收到此错误:aclass-keymustbeusedwhendeclaringafriend但是用MicrosoftVisualC++编译器编译时它运行良好。 最佳答案 你需要friendclasstwo;代替friendtwo;此外,您不需要单独转发声明您的类,因为友元声明本身就是一个声明。你甚至可以这样做://noforward-de