Questions tagged «c++»

C ++是一种通用编程语言。它最初被设计为C的扩展,并且具有类似的语法,但是现在它是一种完全不同的语言。使用此标记可解决有关将要使用C ++编译器编译的代码的问题。对于与特定标准修订版[C ++ 11],[C ++ 14],[C ++ 17]或[C ++ 20]等相关的问题,请使用特定于版本的标记。

5
如何指定库路径的首选项?
我正在使用g++和编译c ++程序ld。我有一个.so我想在链接期间使用的库。但是,中存在一个同名的库/usr/local/lib,并且ld正在选择该库而不是我直接指定的库。我怎样才能解决这个问题? 对于以下示例,我的库文件为/my/dir/libfoo.so.0。我尝试过的事情不起作用: 我的g ++命令是 g++ -g -Wall -o my_binary -L/my/dir -lfoo bar.cpp 添加/my/dir到我的$PATHen`变量的开头或结尾 /my/dir/libfoo.so.0作为g ++的参数添加
91 c++  linker  g++ 

3
向量增长时如何执行移动语义?
我有std::vector某类的东西A。该类很简单,并定义了复制构造函数和 move构造函数。 std::vector<A> myvec; 如果我用A对象填充矢量(例如使用myvec.push_back(a)),则矢量的大小将增大,使用复制构造函数A( const A&)实例化矢量中元素的新副本。 我能以某种方式强制A使用class的move构造函数代替beging吗?



6
在C ++中删除指针
背景信息:我想把指针包裹住,几个星期前我们刚在学校看到它们,今天练习的时候我遇到了傻子吗?问题,对您来说可能非常简单,但是我几乎没有编程经验。 我已经在SO中看到了很多有关删除指针的问题,但它们似乎都与删除类有关,而不是与“简单”指针(或任何适当的术语)有关,这是我正在尝试的代码跑: #include <iostream>; using namespace std; int main() { int myVar, *myPointer; myVar = 8; myPointer = &myVar; cout << "delete-ing pointers " << endl; cout << "Memory address: " << myPointer << endl; // Seems I can't *just* delete it, as it triggers an error delete myPointer; cout …


4
如何迭代std :: set?
我有以下代码: std::set<unsigned long>::iterator it; for (it = SERVER_IPS.begin(); it != SERVER_IPS.end(); ++it) { u_long f = it; // error here } 没有->first价值。我如何获得价值?
91 c++  set  iteration 

8
类内部或外部的函数声明
我是一名尝试学习C ++的JAVA开发人员,但我真的不知道标准函数声明的最佳实践是什么。 在课堂里: class Clazz { public: void Fun1() { //do something } } 或外面: class Clazz { public: void Fun1(); } Clazz::Fun1(){ // Do something } 我觉得第二个可能不太可读...
91 c++  inline 

9
访问同一类中另一个对象的私有字段
class Person { private BankAccount account; Person(BankAccount account) { this.account = account; } public Person someMethod(Person person) { //Why accessing private field is possible? BankAccount a = person.account; } } 请忘记设计。我知道OOP指定私有对象是该类的私有对象。我的问题是,为什么将OOP设计为使私有字段具有类级别的访问权限而不具有对象级别的访问权限?
91 java  c++  .net  oop 

11
C ++中的静态数组与动态数组
C ++中的静态数组和动态数组有什么区别? 我必须为我的课程做一个分配,它说不要使用静态数组,而只能使用动态数组。我在书中和网上都看过,但我似乎不太明白。 我以为静态是在编译时创建的,动态是在运行时创建的,但是我可能会误以为是内存分配。 您能解释一下C ++中静态数组和动态数组之间的区别吗?

3
LPCWSTR代表什么?应该如何处理?
首先,到底是什么?我猜它是一个指针(LPC表示长指针常量),但是“ W”是什么意思?是指向字符串的特定指针还是指向特定字符串的指针?例如,我想关闭一个名为“ TestWindow”的窗口。 HWND g_hTest; LPCWSTR a; *a = ("TestWindow"); g_hTest = FindWindowEx(NULL, NULL, NULL, a); DestroyWindow(g_hTest); 该代码是非法的,并且由于const char [6]无法转换为CONST WCHAR而无法使用。我一点都不明白。我想对所有这些LPCWSTR,LPCSTR,LPSTR有一个清晰的了解。我试图找到一些东西,但是我感到更加困惑。在msdn站点FindWindowEx上声明为 HWND FindWindowEx( HWND hwndParent, HWND hwndChildAfter, LPCTSTR lpszClass, LPCTSTR lpszWindow ); 所以最后一个参数是LPCSTR,编译器需要LPCWSTR。请帮忙。
91 c++  winapi  lpcstr 

5
是否需要在派生类中实现所有虚拟功能?
这似乎是一个简单的问题,但在其他任何地方都找不到答案。 假设我有以下内容: class Abstract { public: virtual void foo() = 0; virtual void bar(); } class Derived : Abstract { public: virtual void foo(); } 派生类不实现bar()函数可以吗?如果不是,我的所有派生类都需要bar()函数,但是有些需要。是需要在派生类中实现抽象基类的所有虚函数,还是仅在纯虚函数中实现?谢谢
91 c++  inheritance 

24
从字符串中删除前导和尾随空格
如何在C ++中从字符串对象中删除空格。 例如,如何从下面的字符串对象中删除前导和尾随空格。 //Original string: " This is a sample string " //Desired string: "This is a sample string" 据我所知,字符串类没有提供任何删除前导和尾随空格的方法。 更严重的是,如何扩展此格式以处理字符串单词之间的多余空格。例如, // Original string: " This is a sample string " // Desired string: "This is a sample string" 使用解决方案中提到的字符串方法,我可以考虑分两个步骤进行这些操作。 删除前导和尾随空格。 在单词边界重复使用find_first_of,find_last_of,find_first_not_of,find_last_not_of和substr以获得所需的格式。
91 c++  string 


2
为什么不能在lambda中捕获此按引用('&this')?
我了解this在lambda中捕获(修改对象属性)的正确方法如下: auto f = [this] () { /* ... */ }; 但我对我所看到的以下特性感到好奇: class C { public: void foo() { // auto f = [] () { // this not captured auto f = [&] () { // why does this work? // auto f = [&this] () { // Expected …
91 c++  c++11  lambda 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.