相关疑难解决方法(0)

C++中struct和class之间有什么区别?

这个问题已在C#/ .Net的背景下提出.

现在我想学习C++中结构和类之间的区别.请讨论技术差异以及在OO设计中选择其中一个的原因.

我将从一个明显的区别开始:

  • 如果您没有指定public:or private:,则结构的成员默认是公共的; 默认情况下,类的成员是私有的.

我确信在C++规范的模糊角落中还有其他差异.

c++ oop struct class c++-faq

427
推荐指数
11
解决办法
34万
查看次数

访问数组越界没有错误,为什么?

我在C++程序中为这样的边界分配值:

#include <iostream>
using namespace std;
int main()
{
    int array[2];
    array[0] = 1;
    array[1] = 2;
    array[3] = 3;
    array[4] = 4;
    cout << array[3] << endl;
    cout << array[4] << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

程序打印34.应该是不可能的.我正在使用g ++ 4.3.3

这是编译和运行命令

$ g++ -W -Wall errorRange.cpp -o errorRange
$ ./errorRange
3
4
Run Code Online (Sandbox Code Playgroud)

只有在分配时才array[3000]=3000会给我一个分段错误.

如果gcc没有检查数组边界,我怎么能确定我的程序是否正确,因为它可能会导致一些严重的问题?

我用上面的代码替换了

vector<int> vint(2);
vint[0] = 0;
vint[1] = 1;
vint[2] = 2;
vint[5] = 5;
cout << vint[2] << endl;
cout …
Run Code Online (Sandbox Code Playgroud)

c++ arrays

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

RAM 内存中的段

我对RAM内存中的段感到困惑,请澄清以下疑问

  1. RAM已经被划分为用户空间和内核空间;这个内存划分是由O/S完成还是由H/W(CPU)完成。

  2. 内核空间的内容是什么;据我所知,只有内核映像,如果我错了,请纠正我。

  3. 这段代码、数据、堆栈和堆段在哪里存在?

    a) 用户和内核空间是否有单独的代码、数据、堆栈和堆段?

    b) 该段是由 H/W 还是 (O/S) 创建的。

  4. 我可以找到内核空间和用户空间占用的内存量吗?

    a) 是否有任何 Linux 命令(或)系统调用可以找到它?

  5. 为什么RAM被划分为用户空间和内核空间?

    a) 我认为这样做是为了保护内核免受应用程序的攻击,是吗?这是唯一的原因。

我是初学者,所以请给我推荐一些好书、链接和处理这些概念的方法。

c linux x86 linux-kernel

4
推荐指数
1
解决办法
1391
查看次数

标签 统计

c++ ×2

arrays ×1

c ×1

c++-faq ×1

class ×1

linux ×1

linux-kernel ×1

oop ×1

struct ×1

x86 ×1