小编Alo*_*ave的帖子

访问说明符和虚函数

在C++指定的3个不同访问说明符(公共,私有,受保护)下声明虚函数时,可访问性的规则是什么?每个访问说明符的含义是什么?任何解释这个概念的简单代码示例都非常有用.

c++ virtual

2
推荐指数
1
解决办法
2475
查看次数

动态内存处理Java与C++

我是一名C++程序员,目前正在尝试使用Java.使用C++我习惯于跟踪动态内存分配并采用各种技术(如RAII)来避免内存泄漏.我们所知道的Java提供了一个垃圾收集器(GC)来处理内存泄漏.因此,在使用Java进行编程时,应该放弃堆内存的所有健康问题并将其留给GC来处理内存泄漏,或者是有一种类似于没有GC的编程语言时的方法,尝试照顾你分配的内存,让GC处理你可能错过的内存.该方法应该是什么?两者的缺点是什么?

c++ java memory-management heap-memory

2
推荐指数
2
解决办法
1607
查看次数

使用proto教程时链接错误

我在ubuntu中使用c ++和apatana作为我的IDE.

我编译了addressbook.proto文件,如下所示:

protoc -I=/home/workspace/rtb/src/ --cpp_out=/home/workspace/rtb/src/ /home/workspace/rtb/src/addressbook.proto
Run Code Online (Sandbox Code Playgroud)

然后我将输出头文件包含在我的c ++代码中,如下所示:

#include "addressbook.pb.h"
Run Code Online (Sandbox Code Playgroud)

那应该是它.对?

当我构建...我得到一个错误列表,这是太长的列表.下面是最后几行.我错过了什么?如何在c ++中使用proto缓冲区?

./src/addressbook.pb.o:(.rodata._ZTVN8tutorial11AddressBookE[vtable for tutorial::AddressBook]+0x40): undefined reference to `google::protobuf::Message::InitializationErrorString() const'
./src/addressbook.pb.o:(.rodata._ZTVN8tutorial11AddressBookE[vtable for tutorial::AddressBook]+0x48): undefined reference to `google::protobuf::Message::CheckTypeAndMergeFrom(google::protobuf::MessageLite const&)'
./src/addressbook.pb.o:(.rodata._ZTVN8tutorial11AddressBookE[vtable for tutorial::AddressBook]+0x88): undefined reference to `google::protobuf::Message::DiscardUnknownFields()'
./src/addressbook.pb.o:(.rodata._ZTVN8tutorial11AddressBookE[vtable for tutorial::AddressBook]+0x90): undefined reference to `google::protobuf::Message::SpaceUsed() const'
./src/addressbook.pb.o:(.rodata._ZTVN8tutorial6PersonE[vtable for tutorial::Person]+0x20): undefined reference to `google::protobuf::Message::GetTypeName() const'
./src/addressbook.pb.o:(.rodata._ZTVN8tutorial6PersonE[vtable for tutorial::Person]+0x40): undefined reference to `google::protobuf::Message::InitializationErrorString() const'
./src/addressbook.pb.o:(.rodata._ZTVN8tutorial6PersonE[vtable for tutorial::Person]+0x48): undefined reference to `google::protobuf::Message::CheckTypeAndMergeFrom(google::protobuf::MessageLite const&)'
./src/addressbook.pb.o:(.rodata._ZTVN8tutorial6PersonE[vtable for tutorial::Person]+0x88): undefined reference to `google::protobuf::Message::DiscardUnknownFields()'
./src/addressbook.pb.o:(.rodata._ZTVN8tutorial6PersonE[vtable for tutorial::Person]+0x90): undefined …
Run Code Online (Sandbox Code Playgroud)

c++ protocol-buffers

2
推荐指数
1
解决办法
5411
查看次数

漂浮和长

我使用sizeof检查我的64位和opteron机器中的长度和浮子的大小.两者都显示为4.

当我检查limits.hfloat.h获得最大浮点数和长值时,这些是我得到的值:

Max value of Float:340282346638528859811704183484516925440.000000

Max value of long:9223372036854775807
Run Code Online (Sandbox Code Playgroud)

由于它们都具有相同的尺寸,因此与长形相比,浮动如何存储如此巨大的价值?

我假设他们有一个不同的浮动存储表示.如果是这样,这是否会影响性能:即使用浮动比使用浮动更快?

c memory

2
推荐指数
1
解决办法
196
查看次数

std :: vector - 如何释放向量中char*元素的内存?

请考虑以下C++代码:

using namespace std;
vector<char*> aCharPointerRow;
aCharPointerRow.push_back("String_11");
aCharPointerRow.push_back("String_12");
aCharPointerRow.push_back("String_13");
for (int i=0; i<aCharPointerRow.size(); i++)  {
   cout << aCharPointerRow[i] << ",";
}
aCharPointerRow.clear();
Run Code Online (Sandbox Code Playgroud)

在该aCharPointerRow.clear();行之后,aCharPointerRow应该删除所有字符指针元素.

上面的C++代码中是否存在内存泄漏?我是否需要显式释放分配给char*字符串的内存?如果有,怎么样?

谢谢你的任何建议.

c++ memory vector std

2
推荐指数
2
解决办法
2534
查看次数

如果类类型是通过值调用的函数的参数,那么类的重载赋值运算符是否会被调用?

让我们A重载类operator= 如果我A按值调用一个具有参数的函数,那么重载operator=是否会被调用?

c++ overloading function

2
推荐指数
1
解决办法
41
查看次数

C++中可变的动机

可能重复:
C++'mutable'关键字
何时使用C++'mutable'关键字?

我理解mutable它的用法和方式,我想知道的是它存在的真正动机是什么.我不认为的唯一动机是绕过的不变性thisconst成员函数我宁愿认为这是给它更多的东西.
我不认为这只是在设计不良的系统中绕过问题的手段吗?或者是吗?

原始问题的明显分支何时使用mutable即使在良好的设计中也是有意义的?

c++ mutable

2
推荐指数
3
解决办法
1260
查看次数

C++中最小的标准兼容对象大小?

我知道空类的大小由标准定义为非零.在大多数实现中,它通常是 1个字节.
但是,C++标准是否指定了对象的最小可能大小?假设按照标准,空类对象的大小至少为 1个字节,这是合乎逻辑的.

c++ sizeof

2
推荐指数
1
解决办法
157
查看次数

变量已定义的命名空间错误

我用C++/cocos2dx 遇到了"AppDelegate.obj中已定义的错误".
这是我的代码gamestage.h

#ifndef __GAME_STAGES_H__
#define __GAME_STAGES_H__

// stage 1;
namespace gamestage1
{
    int btn_number = 9;
}

#endif
Run Code Online (Sandbox Code Playgroud)

game.cppmenu.cpp使用此gamestage.h文件,没有gamestage.cpp文件.

实际上,我尝试使用extern如下:

extern int btn_number = 9;
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

*这会导致什么?*

c++ namespaces

2
推荐指数
1
解决办法
1893
查看次数

指针和对象切片

我正在学习关于对象切片的艰难方法,我想知道指针是否有可能被对象切片.换一种说法:

  • 指针是否可以成为对象切片的受害者,或者只要您使用指针,您是否始终可以避免对象切片?

c++ pointers object-slicing

2
推荐指数
1
解决办法
2380
查看次数