类数据默认初始化

2024-04-27

我有以下代码:

#include <iostream>
using namespace std;

class Base
{
private:
    int i;
    char ch;
public:
    void showdata()
    {
        cout<<"Int:"<<i<<endl;
        cout<<"Char:"<<ch<<endl;
    }
    //int pub_data ;
} ;

int main()
{
    Base ob;
    ob.showdata() ;
    //cout<<"Public Data:"<<ob.pub_data<<endl;
    return 0;
}

该程序编译并运行良好。输出显示 i 初始化为 0,ch 初始化为 '\0'。
如果您注意到我已经注释掉了该程序中的 2 条语句。首先是公共数据 pub_data 的声明,其次是 main 中打印此公共数据的行。
现在的问题是,如果我取消注释这两行,类的数据成员即 i、ch、pub_data 似乎没有被初始化,并且在打印时,它们显示垃圾值。
所以我的问题是公共数据在这里有什么区别?
我正在使用 g++ 3.4.6


int 和 char 都不会自动初始化为 0。它发生的事实只是运气。

您需要添加一个执行初始化的构造函数:

Base() : i(0), ch(0) {}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类数据默认初始化 的相关文章

  • 如何从该 Voronoi 图数据中获取单元格字典?

    使用找到的voronoi delaunay图生成库在这个节目中 http sourceforge net projects mapmanager 这是基于 财富 最初的实施他的算法 http en wikipedia org wiki Fo
  • 如何使用 ASP.NET MVC 进行 HTTP 调用?

    我正在尝试做的事情 我试图练习进行 HTTP 调用 如果这就是它的名字 来自一个简单的 ASP NET MVC Web 应用程序 为此 我尝试从以下位置获取天气详细信息打开天气地图 http openweathermap org appid
  • MVC Core IActionResult 含义

    什么是IActionResult 我尝试查看 MSDN 和其他网站 但需要通用 常见 易于理解的答案 MSDN IActionResult https learn microsoft com en us dotnet api microso
  • 为什么在 C# 中成员初始值设定项中不允许这样做,但在 VB.Net Me 中允许

    我正在将 VB Net 应用程序转换为 C 并注意到在 VB Net 代码中 有一个私有成员变量 它是使用Me像这样 Private m ClassA As New MyCollection Of ClassA Me 当我将其转换为 C 代
  • 同步执行异步函数

    我对此主题进行了大量搜索 并且阅读了本网站上有关此主题的大部分帖子 但是我仍然感到困惑 我需要一个直接的答案 这是我的情况 我有一个已建立的 Winform 应用程序 但无法使其全部 异步 我现在被迫使用一个全部编写为异步函数的外部库 在我
  • 泛型与接口的实际优势

    在这种情况下 使用泛型与接口的实际优势是什么 void MyMethod IFoo f void MyMethod
  • 异步方法中的异常未被捕获

    下面的代码没有捕获我的OperationCancelEException 它是通过调用抛出的ct ThrowIfCancellationRequested public partial class TitleWindow Window IA
  • 如何在 C++ 中对静态缓冲区执行字符串格式化?

    我正在处理一段对性能要求非常高的代码 我需要执行一些格式化的字符串操作 但我试图避免内存分配 甚至是内部库的内存分配 在过去 我会做类似以下的事情 假设是 C 11 constexpr int BUFFER SIZE 200 char bu
  • 以标准用户身份打开默认浏览器 (C++)

    我目前正在使用 ShellExecute 打开 在用户浏览器中打开 URL 但在 Win7 和 Vista 中遇到了一些麻烦 因为该程序作为服务运行提升 当 ShellExecute 打开浏览器时 它似乎读取 本地管理员 配置文件而不是用户
  • 从窗口内容截取屏幕截图(无边框)

    我正在寻找有关如何使用 C 将表单内容保存在位图中的解决方案 我已经尝试过使用 DrawToBitmap 但它捕获了所有带边框的窗口 这就是这段代码的结果 public static Bitmap TakeDialogScreenshot
  • 无法将方法组“Read”转换为非委托类型“bool”

    我正在尝试使用SqlDataReader检查条目是否存在 如果存在则返回ID 否则返回false 当我尝试编译时 出现错误 无法将方法组 Read 转换为非委托类型 bool 我一直在遵循在 VB 中找到的示例 但似乎翻译可能不正确 pri
  • 使用互斥锁来阻止临界区外部的执行

    我不确定我的术语是否正确 但这里是 我有一个由多个线程使用的函数来写入数据 在注释中使用伪代码来说明我想要的内容 these are initiated in the constructor int data std atomic
  • 如何从代码隐藏中向我的 div 添加点击事件?

    如何从代码隐藏中向我的 div 添加点击事件 当我点击 div 时 会出现一个消息框 其中显示 您想删除它吗 并在框中显示 是 或 否 全部来自后面的代码 while reader Read System Web UI HtmlContro
  • C 中的 N 依赖注入 - 比链接器定义的数组更好的方法?

    Given a 库模块 在下文中称为Runner 它作为可重复使用的组件 无需重新编译 即静态链接库 中应用程序分区架构的 而不是主分区 请注意 它仅包含main 出于演示目的 Given a set 顺序无关 调用的其他模块 对象Call
  • 在 try catch 块中返回到 catch 内是否不好?这是很好的做法

    在 try catch 块中从 C 中的 catch 块返回值是不好的做法吗 try Some code return 1 catch return 0 哪种使用 try catch 的方法是好的做法 不需要 只要返回的值是你想要的 你可以
  • win32 API 和 .NET 框架之间的选择

    我必须开发一个适用于 Windows 的应用程序 该应用程序将能够通过网络摄像头识别手势来控制鼠标 我将使用 vc 2008 进行开发 但我很困惑是使用 NET 框架还是核心 win32 API 性能对于我的应用程序非常重要 根据 Ivor
  • 实体框架代理创建

    我们可以通过使用来停止在上下文构造函数中创建代理 this Configuration ProxyCreationEnabled false 在 EF 4 1 中创建代理有哪些优点和缺点 代理对于两个功能是必需的 延迟加载 导航属性在第一次
  • 在代码中而不是 XAML 中呈现 UserControl

    我想用RenderTargetBitmap将 UserControl 呈现为位图 而无需为其编写 XAML 当我这样做时 我得到一张空白图像 我是否错过了关键的一步 ValTool Controls VideoFisheyeOverlayC
  • 在类中使用 std::chrono::high_resolution_clock 播种 std::mt19937 的正确方法是什么?

    首先 大家好 这是我在这里提出的第一个问题 所以我希望我没有搞砸 在写这篇文章之前我用谷歌搜索了很多 我对编码 C 很陌生 我正在自学 考虑到有人告诉我 只为任何随机引擎播种一次是一个很好的做法 我在这里可能是错的 什么是正确 最佳 更有效
  • 致命错误 C1001:编译器中发生内部错误(编译器文件“msc1.cpp”,第 1325 行)

    当我编译代码时 错误指向以下类 该错误在两行上突出显示 如下所示 tm validFrom tm validUntil struct t SslCertData final struct t Contact TCHAR Organizati

随机推荐

  • Django 类视图:__init__

    我想要得到
  • IBM WebSphere MQ 2042 错误

    我有以下代码 int openOptions MQC MQOO INQUIRE MQC MQOO FAIL IF QUIESCING MQC MQOO INPUT SHARED 执行时 我收到错误 com ibm mq MQExceptio
  • java.lang.NoClassDefFoundError: org/apache/ws/commons/schema/resolver/URIResolver

    我正在尝试创建一个简单的 Hello Web 服务 但收到以下错误 type Exception report message Servlet init for servlet AxisServlet threw exception des
  • Spring 3、Jersey (JSR-311) 和 Maven 依赖项

    我目前正在努力集成基于 Jersey 和 Spring 的 REST 服务 我正在使用 Spring 3 0 2 RELEASE 和 jersey spring 1 2 但是 jersey spring 在我的项目中添加了对 Spring
  • Ruby 中的参数化 get 请求?

    如何创建 HTTPGETRuby 中带参数的请求 这很容易做到 当你POSTing require net http require uri HTTP post form URI parse http www example com sea
  • 使用 Struts 2.2.x 的简单 JSON 示例?

    我在获取 JSON 结果时遇到问题支柱2 2 1 1 http struts apache org 2 2 1 1 index html 有没有人有一个简单的工作示例 可以使用以下命令将 JSON 结果返回到 JSP支柱2 2 1 1并准备
  • 如何重构“字符串类型”代码?

    我目前正在开发一个代码库 其中有几类变量 例如数据库路径 它们简单地表示为字符串 这些 非 类型的大多数操作都在实用程序类中定义 我创建了一个新类来表示数据库 并将操作定义为实例方法 采用传统的 OOP 风格 然而 浏览大型代码库并重构它以
  • ASP.NET MVC4 和 Web API 身份验证 + 授权(Windows 8 和 Web)

    我使用 Simple Membership db 创建了一个 ASP NET MVC 4 Internet Web 应用程序来存储用户 角色和配置文件 在我的应用程序中 我创建了一个 Web API 控制器 它将响应http 127 0 0
  • 并行迭代器

    我正在设计一个 C 数据结构 用于图形 供并行代码 使用 OpenMP 使用 假设我想要一个能够迭代所有元素 节点 的方法 当然 这个迭代将是并行的 是否可以使用迭代器来实现此目的 迭代器应该是什么样子才能实现并行访问 在这种情况下 您会建
  • JavaMail 连接到 Office 365 XOAUTH2 进行 IMAP 身份验证失败

    使用 OAuth2 0 在线 Office365 面临连接问题 我已经设置了应用程序权限以及 IMAP 和 SMTP 连接 基本身份验证似乎工作正常 我相信 IMAP 已启用 我的应用程序配置为任何组织目录 任何 Azure AD 目录 多
  • RSA_public_decrypt 和 MS Crypto API 等效项

    我正在尝试开发许可证验证解决方案 许可证使用 OpenSSL 在服务器上进行编码RSA private encrypt功能 对于 Mac OS X 使用RSA public decrypt它就像一个魅力 在 Windows 上 我必须使用非
  • 如何检查 GAS 中是否存在文件(通过 id)

    我知道有关如何检查文件是否存在的问答by name using hasnext 不过我需要检查一下按文件 ID 最好没有高级 Drive API 披露 我写了一个基于错误处理的解决方案 function ifFileExists id tr
  • numberOfSections 被调用? iOS系统

    跳过所有这些信息并跳至底部的更新 我以前处理过无法识别的选择器 但这次我无法弄清楚发生了什么 调用堆栈是不透明的 我无法找出问题的根源 我尝试过使用符号断点和异常断点 这段代码之前工作得很好 我回来继续处理这个程序 现在遇到了这个 UITa
  • 改变 H2 中的序列

    我在生产中使用 Postgres 数据库 在测试中使用 H2 我想为现有表创建一个新序列 所以在 Liquibase 中我写了这个
  • Webhook 执行错误:Hook 执行成功但返回 HTTP 400 Missing_text_or_fallback_or_attachments

    我正在尝试将 Slack 与 GitLab 集成 我在 slack 中安装了一个 webhook 并将 webhook url 复制到 GitLab 的应用程序集成中 我还在 GitLab 的集成设置中启用了 Slack 集成 但是我不断收
  • 使用heroku.yml部署到Heroku多个docker镜像,收到错误:无法检测到此应用程序的默认语言

    我正在尝试部署一个在本地运行的应用程序docker compose 我遵循了文档 使用 heroku yml 构建 Docker 镜像 https devcenter heroku com articles build docker ima
  • 修复核心数据失败

    我的应用程序商店中有一个使用 Core Data 的应用程序 我必须在明天之前发布更新 但是 我在使用 Core Data 时遇到了一些问题 我错误地更改了 Core Data 中的模型 现在我的应用程序崩溃了 我尝试迁移数据 但当我在 i
  • 如何在项目之间移动 TFS 2010 构建定义?

    我有一些在 ProjectX 下创建的 TFS 2010 构建定义 现在源代码已移至 ProjectY 下属的文件夹中 如何将构建定义移至 ProjectY 以便它们显示在 ProjectY 的团队资源管理器的构建节点下 我认为没有现成的东
  • intellij 中的搜索到处停止工作

    当我在 intellij 中到处搜索时 我只得到我处理过的最新文件 而不是完整的结果 除了重新安装还有什么办法可以解决这个问题吗 尝试使用 Ctrl shift R 吗 这就像到处搜索一样 也允许您替换单词
  • 类数据默认初始化

    我有以下代码 include