C++学习第一天---类和对象
2021/4/18 1:25:23
本文主要是介绍C++学习第一天---类和对象,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
结构体和类的比较:
1、C语言:
#include <iostream> using namespace std; struct Student { public: char Name[20]; int age; private: char id[5]; char sex[3]; }; void main() { Student st1; st1.age = 10; }
通过上面的代码可以看出,在main函数里给age变量赋值可以编译通过,从中我们可以得出结论:
1、C语言结构体可以使用public private protected关键字修饰限定结构体成员的访问权限,并且结构体不写访问权限修饰符时,默认是public
2、Student st1 表示定义一个结构体变量st1
2、C++:
class Goods { public: char Name[20]; int Amount; float Price; float TOtal_value; }; void main() { Goods gd1; gd1.Amount = 10; gd1.Price = 20; }
1、类定义可以使用public private protected关键字修饰限定类成员的访问权限,并且类不写访问权限修饰符时,默认是private
2、Goods gd1 表示定义一个类变量gd1,但是C++比C语言高级,我们把类变量起一个高级的名字,叫:对象,即用类定义一个对象
3、定义类的标准模板
Test.h文件如下:
#pragma once #include <iostream> using namespace std; class Goods { public: void RegisterGoods(const char[], int, float); void CountTotal(void); void GetName(char[]); int GetAmount(void); float GetPrice(void); float GetTotal_value(void); private: char Name[21]; int Amount; float Price; float Total_value; };
Test.c文件如下:
#include "Test.h" void Goods::RegisterGoods(const char name[], int amount, float price) { strcpy(Name, name); Amount = amount; Price = price; } void Goods::CountTotal(void) { Total_value = Amount* Price; } void Goods::GetName(char name[]) { strcpy(name, Name); } int Goods::GetAmount(void) { return Amount; } float Goods::GetPrice(void) { return Price; } float Goods::GetTotal_value(void) { return Total_value; }
Main.c文件定义如下:
#include "Test.h" void main() { Goods gd1; char name[21]; int a=1; gd1.RegisterGoods("c++", 30,10.0); gd1.GetName(name); cout << name << endl; gd1.CountTotal(); a = gd1.GetAmount(); cout << a << endl; }
类是模板,只是告诉编译器有这么个数据类型,编译器并不会为类分配存储空间
当用类定义类变量时,即对象,编译器就会为对象分配内存空间
这篇关于C++学习第一天---类和对象的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升
- 2024-05-08代码报错不用愁,CodeGeeX一键完成代码修复、错误解释的功能上线了!
- 2024-05-08今天开始程序员不用再发愁写commit message了,全部由CodeGeeX自动完成!