小编gok*_*oon的帖子

除了OOP之外,什么使C++比C更好

嗯,这可能听起来像一个巨魔问题,但由于C++似乎很难完全掌握(我从来没有真正知道STL实际上是它的"部分"),我想知道在不依赖时使用C而不是C++有什么缺点在OOP上.

C++有时候会有非常复杂的语法,这在我尝试使用OGRE3D时会让我感到困惑......

c c++

32
推荐指数
5
解决办法
8855
查看次数

为什么计算机科学中有8个和256个如此重要的数字?

我不太了解RAM和HDD架构,或者电子如何处理内存块,但这总是引起我的好奇心:为什么我们选择停在8位以获得计算机值中的最小元素?

我的问题可能看起来很愚蠢,因为答案很明显,但我不太确定......

是因为2 ^ 3允许它在寻址内存时非常适合吗?电子产品是否专门设计用于存储8位块?如果是,为什么不使用更广泛的词?这是因为它除了32,64和128,所以处理器的单词可以给出几个单词?这么小的空间有256个值是否方便?

你怎么看 ?

我的问题有点过于形而上学,但我想确保这只是一个历史原因,而不是技术或数学原因.

对于这个轶事,我也在考虑ASCII标准,其中大多数首字母对UTF-8这样的东西都没用,我也试着想一些更简单快速的字符编码......

memory math ram history processor

19
推荐指数
3
解决办法
7007
查看次数

GMP如何以任意数量的字节存储其整数?

2 ^ 64离我的ram /硬盘可以处理的"无限"还有一段距离......

首先我想知道GMP如何与内存/处理器一起工作,因为它做了一些阴暗的优化......

我还想知道是否有一种方法可以在任意数量的字节上存储一个整数(无符号,更容易).例如,在50个字节上,我的上限为2 ^ 400 -1.要做的是使用携带以保持数字从一个字节到另一个字节保持一致,我对此有一些了解,但我真的不确定它是最快的方法.我甚至不确定我是否正确.

我猜GMP使用这种方式来存储它的数据,但我只想要一些(甚至很少)解释或某些理论转发(我没有任何博士学位,所以不要太难).

c c++ assembly gmp bignum

7
推荐指数
1
解决办法
3227
查看次数

覆盖或删除继承的构造函数

这是一些C++代码:

#include <iostream>
using namespace std;

class m
{
    public:
    m() { cout << "mother" << endl; }
};

class n : m
{
    public:
    n() { cout << "daughter" << endl; }
};

int main()
{
    m M;
    n N;
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

mother  
mother  
daughter
Run Code Online (Sandbox Code Playgroud)

我的问题是我不想在创建N时调用m的构造函数.我该怎么办?

c++ inheritance class

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

在游戏编程中,导致性能损耗的特定C++或STL功能是什么?

我的问题主要是关于STL而不是C++的其他部分可以比较(我猜)和C一样快,只要每个角都不使用类.

STL是游戏和OGRE3D等引擎的标准,但我想知道如果STL的功能很好用,问题是虽然我真的不知道它们是如何工作的,但我应该先知道在使用之前哪些功能会导致严重的生猪他们.

我很兴奋开始那个游戏编程学校,显然我不会不使用这些高级功能.

c c++ stl

5
推荐指数
3
解决办法
1270
查看次数

将属性保护/私有的任何性能原因?

我在学校"学习"了C++,但有几件我不知道的事情,比如编译器可以优化的地方或内容,似乎我已经知道了,inline并且const可以提升一点......

如果性能是一个重要的东西(例如游戏编程),那么放置类属性不是public(privateprotected)允许编译器制作更优化的代码吗?

因为我之前的所有老师都在说它更"安全"或"防止不想要或授权的类访问/行为",但最后,我想知道放置属性是否public可以限制范围,从而加固事物.

我不批评我的老师(我应该),但我所在的编程班不是很先进......

c++ private class protected public

3
推荐指数
1
解决办法
2087
查看次数

在带有24位索引数组的macbook pro上获得了段错误

我正在使用GCC +终端来制作一个素数数组.

我曾经问过#C@irc.freenode.net,但我仍然不明白:

int可以存储32位的值(所以总共有2 ^ 32个唯一值),但是数组的值不能超过2 ^ 24个值?

我不确定,但为什么24位寄存器?已经回答了我的问题?

这是否意味着制作一个数组long int并不能解决问题?是否有一些(按比例快速)的方式我可以绕过这个,比如使用int[][]存储这些数字?或者也许是一个include或lib来使用任意数量的字节来存储数字?



    int main()  
    {  
        int array1[160000];  
        printf("first array declared fine.\n");  
        int array2[170000];  

        int array3[1600000];  
        printf("first array declared fine.\n");  
        int array4[1700000];  

        int array5[16000000];  
        printf("first array declared fine.\n");  
        int array6[17000000];  
    }

Run Code Online (Sandbox Code Playgroud)

c memory assembly segmentation-fault

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