0

0

C++程序将原始类型转换为对象

PHPz

PHPz

发布时间:2023-08-26 19:29:03

|

1324人浏览过

|

来源于tutorialspoint

转载

c++程序将原始类型转换为对象

C++ 中的原始数据类型是语言本身预定义的数据类型;像int、float、double等。对象是类的实例,而C++是面向对象的语言,原始数据类型和对象之间的转换是必要的。类充当数据类型的架构计划。虽然这没有具体描述任何数据,但它确实指定了类名的含义,即该类的对象是什么样子以及可以对其执行什么操作。

在C++语言编译器中,原始数据类型到对象之间的转换没有明确定义,因此要将原始数据类型转换为对象,必须由程序员定义机制。如何将原始类型转换为特定对象是在用户定义类的构造函数中定义的。我们举一个例子来更好地理解这个问题。

我们正在解决的问题是以克为单位的重量转换为千克和克。为此,我们定义了一个用户定义的类权重,其中包含两个整数成员 kg 和 gm。 “kg”是给定重量的千克值,“gm”是要转换的小于一千克的剩余重量。下面给出解决该问题的算法。

语法

转换的语法如下 -

立即学习C++免费学习笔记(深入)”;

JSON.NET 简单的使用 中文WORD版
JSON.NET 简单的使用 中文WORD版

本文档主要讲述的是JSON.NET 简单的使用;JSON.NET使用来将.NET中的对象转换为JSON字符串(序列化),或者将JSON字符串转换为.NET中已有类型的对象(反序列化?)。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看

下载
class Myclass{
   private:
   int classVal;
   public:
   MyClass(){
      classVal = 0;
   }
   MyClass(int val) {
      classVal = val;
   }
};
int main() {
   Myclass m;
   int val = ;
   m = val;
   return 0;
}

算法

  • 将输入权重放入整数变量中。
  • 创建一个类weight的对象。
  • 将整数值赋给类对象;
  • 调用对象的show函数。

在定义的类的构造函数中,执行以下操作:

  • 将输入值除以 1000,得到千克 (kg) 值作为商。
  • 将输入值除以1000,得到以克(gm)为单位的余数。

如前所述,所有的转换机制都必须在构造函数内定义。构造函数必须是带参数的,并且原始源值必须作为参数传递给构造函数。问题的源代码如下。

示例

#include 
using namespace std;
//converts weight in grams to kgs and grams
class Weight
{
   private:
      int kg, gm;
   public:
   //default constructor
   Weight()
   {
      kg = 0;
      gm = 0;
   }
   //paramaeterized constructor
   Weight(int ip)
   {
      this->kg = ip / 1000;
      this->gm = ip % 1000;
   }
   //shows the output
   void show()
   {
      cout << "The weight is " << this->kg << " kgs and " << this->gm << " grams." << endl;
   }
};
int main()
{
   //weight in grams
      int ip = 1085;
   //conversion done here
      Weight w;
      w = ip;
      w.show();
   return 0;
}

输出

The weight is 1 kgs and 85 grams.

在示例中,输入位于主函数内部,为“ip”。还有一个类权重“w”的对象。我们刚刚将整数值分配给类对象,并调用了对该对象的参数化构造函数的隐式调用。构造函数中定义的函数已被执行,最后通过调用show函数显示输出。

结论

在此示例中,从原始类型到用户定义的类对象的转换是使用构造函数的隐式调用完成的。这很好,直到构造函数需要多个原始值来实例化该对象。因此,我们必须显式调用构造函数,然后将原始值作为参数传递给对象构造函数。相反的从对象到原始类型的转换则不同,它需要更复杂的过程来完成。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

301

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

222

2025.10.31

css中float用法
css中float用法

css中float属性允许元素脱离文档流并沿其父元素边缘排列,用于创建并排列、对齐文本图像、浮动菜单边栏和重叠元素。想了解更多float的相关内容,可以阅读本专题下面的文章。

558

2024.04.28

C++中int、float和double的区别
C++中int、float和double的区别

本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

98

2025.10.23

go语言 面向对象
go语言 面向对象

本专题整合了go语言面向对象相关内容,阅读专题下面的文章了解更多详细内容。

56

2025.09.05

java面向对象
java面向对象

本专题整合了java面向对象相关内容,阅读专题下面的文章了解更多详细内容。

49

2025.11.27

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

315

2023.08.02

int占多少字节
int占多少字节

int占4个字节,意味着一个int变量可以存储范围在-2,147,483,648到2,147,483,647之间的整数值,在某些情况下也可能是2个字节或8个字节,int是一种常用的数据类型,用于表示整数,需要根据具体情况选择合适的数据类型,以确保程序的正确性和性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

537

2024.08.29

Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

4

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
C# 教程
C# 教程

共94课时 | 6.7万人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.3万人学习

Swoft2.x速学之http api篇课程
Swoft2.x速学之http api篇课程

共16课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号