c++类的基本形式(一个简单类的简单sample,命名空间)
- 有人把类说成是占用固定大小内存块的别名,其定义时不占用空间
#include<iostream>
#include<string>
using namespace std;
class mycoach
{
public:
string name="陈培昌";
int age=;
private:
string favorite = "和丁大锅在一起";
public:
void introduce()
{
cout << "大家好,我是" + name << "爱好是:" + favorite << endl;
}
}; void main()
{
mycoach cpc;
cout << "大家好,我是"+cpc.name<<endl;
cpc.introduce();
getchar(); }
输出结果:

- 常见错误----为什么成员函数很重要
#include<iostream>
#include<math.h>
using namespace std;
class mycircle
{
public:
double radius;
double mypie = 3.1415926;
double s = radius*radius*mypie;
}; int main()
{
mycircle circle;
cout << "请输入半径:";
cin >> circle.radius;
cout << "OK半径是: " << circle.radius << " 那么圆的面积是:"<<endl;
cout << circle.s << endl;
system("pause");
return ;
}
输出结果:

what hell that do......究其原因,乃是,类定义时就为mycircle的成员属性s就分配了一块空间,其值是乱码
即使在main函数中为radius赋值,然而这对s并无任何影响,所以其值为乱码,所以计算面积s不得不使用一成员函数
#include<iostream>
#include<math.h>
using namespace std;
class mycircle
{
public:
double radius;
double mypie = 3.1415926;
//double s = radius*radius*mypie;
public:
double gets()
{
return radius*radius*mypie;
}
}; int main()
{
mycircle circle;
cout << "请输入半径:";
cin >> circle.radius;
cout << "OK半径是: " << circle.radius << " 那么圆的面积是:"<<endl;
cout << circle.gets()<< endl;
system("pause");
return ;
}
输出结果:

namespace的用途:比起C来说,C++的函数库十分丰富,有可能遇到库函数名撞库的现象,所以需要namespace来区分
我们常见的namesapce 是标准命名空间即 using namespace std,如果未声明代码要使用的命名空间,那么可以通过这种方法引入
int main()
{
mycircle circle;
std::cout << "请输入半径:";
std::cin >> circle.radius;
std::cout << "OK半径是: " << circle.radius << " 那么圆的面积是:"<<std::endl;
std::cout << circle.gets()<< std::endl;
system("pause");
return ;
}
- 命名空间
#include "iostream"
#include<string>
using namespace std;
namespace cjbefore1014
{
string comment = "懂事,可爱的搏击弟弟一口一个哥";
}
namespace cjafter1014
{
string comment = "冷酷,无情,自私,过河拆桥,傲慢,不可理喻,白眼狼";
} void main()
{
using namespace cjbefore1014;
cout << "once upon the time:有这样一个搏击弟弟" << endl;
cout << "在2019年10月14日以前" << "他是一个" << endl;
cout <<comment << endl;
using namespace cjafter1014;
cout << "在2019年10月14日以后" << "他是一个" << endl;
cout << cjafter1014::comment << endl;
system("pause");
}
输出结果:

c++类的基本形式(一个简单类的简单sample,命名空间)的更多相关文章
- 基类的两个派生类再派生一个派生类 用virtual避免二义性
class vehicle{ int MaxSpeed; int Weight;public: vehicle(int maxspeed, int weight) :MaxSpeed(maxspeed ...
- 使用代码向一个普通的类注入Spring的实例
转载请在页首注明作者与原文地址 一:应用场景 什么是普通的类,就是没有@Controller,@Service,@Repository,@Component等注解修饰的类,同时xml文件中,也没有相应 ...
- 类转json的基类实现
类转json的基类实现 项目地址 github地址 实现原理 使用反射获取类的属性名和属性内容.具体原理可以自己查一下资料 对一个类调用getClass().getDeclaredFields()可以 ...
- 反射01 Class类的使用、动态加载类、类类型说明、获取类的信息
0 Java反射机制 反射(Reflection)是 Java 的高级特性之一,是框架实现的基础. 0.1 定义 Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对 ...
- C++_派生类的构造函数及派生类和基类之间的特殊关系
派生类和基类的概念及派生类构造函数的原理: 创建一个叫做TableTennisPlayer的基类,记录会员的名字和是否有球桌. //声明一个基类 class TableTennisPlayer { p ...
- Away3d 基础 1 ---对一个简单类的解释
转自:http://www.cnblogs.com/nooon/archive/2009/05/16/1458334.html 原英文地址: http://www.flashmagazine.com/ ...
- 经测试稳定可用的蓝牙链接通信Demo,记录过程中遇到的问题的思考和解决办法,并整理后给出一个Utils类可以简单调用来实现蓝牙功能
说明:这是本人在蓝牙开发过程中遇到过的问题记录和分析,以及解决办法. 在研究过程中,许多的前人给出的解决方案和思路指导对我相当有帮助,但并非都是可采取的解决方法, 经过本人对这些方法的测试和使用过后, ...
- C++_类继承1-从一个简单的类开始
面向对象编程的主要目的之一是:提供可重用的代码.尤其是项目很庞大的时候,重用测试过的代码比重新编码代码要好得多. C++提供了更高层次的重用性.其中之一就是继承这个概念. 一些厂商提供了类库.类库由类 ...
- Python 元类编程实现一个简单的 ORM
概述 什么是ORM? ORM全称"Object Relational Mapping",即对象-关系映射,就是把关系数据库的一行映射为一个对象,也就是一个类对应一个表,这样,写代码 ...
- Swift - 简单封装一个工具类模板
创建模板类(封装一个类) 例1:新建一个名字叫做 Product 的类 Product.swift File 的内容 class Product { var name: String var desc ...
随机推荐
- [转帖]Oracle报错ORA-26563--当重命名表时碰到物化视图
Oracle报错ORA-26563--当重命名表时碰到物化视图 https://www.toutiao.com/i6739137279115133447/ 原创 波波说运维 2019-09-26 00 ...
- Oracle之配置节点间相互信任机制测试
更改一下,之前的都不对,现在来一版简单有效的ssh互信配置 例如我的是在配置rac,在grid用户下配置互信:建立好相应的文件 mkdir .ssh chmod -R 700 .ssh/ 使用ssh- ...
- WCF-复杂配置
两种模式,一个契约两个实现,两个契约一个实现. 服务类库 宿主 static void Main(string[] args) { ServiceHost sh1 = new ServiceHost( ...
- sqlite 版本更新维护, 表结构判断, 更新
sqlite会自动维护一个系统表sqlite_master,该表存储了我们所创建的各个table, view, trigger等等信息. sqlite_master表数据字段: type: 类型,取值 ...
- Vue路由系统
Vue路由系统 一切分离都是为了更好的结合,本文详细介绍了前后端分离架构之后,前端如何实现路由控制,即Vue路由系统. 一.VueRouter实现原理 VueRouter的实现原理是根据监控锚点值的改 ...
- SpringBoot 第一篇:HelloWorld 跑起来
背景 金融行业从业快十年,作为银行系开发人员来说开源框架了解不多非常正常,因为银行系的运行平台,基本上不会采购小厂商集合开源框架自建的产品,竞标的产品没有几十个成功案例,你也进不了这个门槛(有关系的除 ...
- 箭头函数的arguments不可用
ES5中的arguments function func(a,b,c){ console.log(arguments[0],arguments[1],arguments[2]) } func(1,2, ...
- Linux的关机和重启命令
Linux有如下的关机和重启命令:shutdown, reboot, halt, poweroff,那么它们有什么区别呢? shutdown - 建议使用的命令 shutdown是最常用也是最安全的关 ...
- Personalize Oracle Applications Home Page Browser Window Title
修改登录页 http://expertoracle.com/2016/03/10/personalizing-the-e-business-suite-r12-login-page/ STEP 2 : ...
- sqlAlchemy搭建sqliteOrm
一:引入文件 from sqlalchemy import Column, Integer, VARCHAR, Text from sqlalchemy import create_engine fr ...