• 有人把类说成是占用固定大小内存块的别名,其定义时不占用空间
#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,命名空间)的更多相关文章

  1. 基类的两个派生类再派生一个派生类 用virtual避免二义性

    class vehicle{ int MaxSpeed; int Weight;public: vehicle(int maxspeed, int weight) :MaxSpeed(maxspeed ...

  2. 使用代码向一个普通的类注入Spring的实例

    转载请在页首注明作者与原文地址 一:应用场景 什么是普通的类,就是没有@Controller,@Service,@Repository,@Component等注解修饰的类,同时xml文件中,也没有相应 ...

  3. 类转json的基类实现

    类转json的基类实现 项目地址 github地址 实现原理 使用反射获取类的属性名和属性内容.具体原理可以自己查一下资料 对一个类调用getClass().getDeclaredFields()可以 ...

  4. 反射01 Class类的使用、动态加载类、类类型说明、获取类的信息

    0 Java反射机制 反射(Reflection)是 Java 的高级特性之一,是框架实现的基础. 0.1 定义 Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对 ...

  5. C++_派生类的构造函数及派生类和基类之间的特殊关系

    派生类和基类的概念及派生类构造函数的原理: 创建一个叫做TableTennisPlayer的基类,记录会员的名字和是否有球桌. //声明一个基类 class TableTennisPlayer { p ...

  6. Away3d 基础 1 ---对一个简单类的解释

    转自:http://www.cnblogs.com/nooon/archive/2009/05/16/1458334.html 原英文地址: http://www.flashmagazine.com/ ...

  7. 经测试稳定可用的蓝牙链接通信Demo,记录过程中遇到的问题的思考和解决办法,并整理后给出一个Utils类可以简单调用来实现蓝牙功能

    说明:这是本人在蓝牙开发过程中遇到过的问题记录和分析,以及解决办法. 在研究过程中,许多的前人给出的解决方案和思路指导对我相当有帮助,但并非都是可采取的解决方法, 经过本人对这些方法的测试和使用过后, ...

  8. C++_类继承1-从一个简单的类开始

    面向对象编程的主要目的之一是:提供可重用的代码.尤其是项目很庞大的时候,重用测试过的代码比重新编码代码要好得多. C++提供了更高层次的重用性.其中之一就是继承这个概念. 一些厂商提供了类库.类库由类 ...

  9. Python 元类编程实现一个简单的 ORM

    概述 什么是ORM? ORM全称"Object Relational Mapping",即对象-关系映射,就是把关系数据库的一行映射为一个对象,也就是一个类对应一个表,这样,写代码 ...

  10. Swift - 简单封装一个工具类模板

    创建模板类(封装一个类) 例1:新建一个名字叫做 Product 的类 Product.swift File 的内容 class Product { var name: String var desc ...

随机推荐

  1. upw,c#,启用后台播放控件

    uwp音视频app,启用后台播放控件. 启用控件 SystemMediaTransportControls systemMedia_TransportControls = SystemMediaTra ...

  2. hdoj3336(kmp算法next数组的应用)

    题目链接:https://vjudge.net/problem/HDU-3336 题意:给定长为n(<=2e5)的字符串s,求s的每个前缀在s中出现的次数之和. 思路: 用dp[i]表示以s[i ...

  3. ROS下gazebo打开出现问题

    通常情况下,在装完ros后,打开gazebo, 会出现无法连接服务器获取模型的情况.这样,我们打开gazebo, 终端会提示timeout,gazebo界面没有网格. 这是因为服务器网站地址好像已经换 ...

  4. Neo4j常用的查询

    一.添加操作 1. 添加节点: create (x:学生{studentId:'1001',age:20} 2. 添加关系: 对现有的节点添加关系 match (x:学生{studentId:1001 ...

  5. gdb调试命令总结

    常用命令: l 列出源代码 每次默认列10行 list 行号   列出从第几行开始的源代码 list函数名     列出某个函数的源代码 r    运行程序 next(或n)     执行下一行语句 ...

  6. windons下一些软件的地址

    idea http://download.jetbrains.8686c.com/idea/ideaIC-2018.3.1.exe

  7. I2C读写EEPROM—EEPROM简介

    EEPROM 是一种掉电后数据不丢失的存储器,常用来存储一些配置信息,以便系统重新上电的时候加载之.EEPOM 芯片最常用的通讯方式就是 I 2C 协议,本小节以 EEPROM 的读写实验为大家讲解如 ...

  8. python 创建es mapping

    import requests def get_(): url = "http://127.0.0.1:9200/indextest/_mapping?pretty" ss = r ...

  9. BZOJ4698 SDOI2008Sandy的卡片(后缀自动机)

    差分后即求多串LCS.先考虑两个串怎么做.对第一个串建SAM,第二个串在上面跑即可,任意时刻走到的节点表示的都是第二个串的当前前缀在第一个串中出现的最长的后缀,具体计算长度时每走一个字符长度+1,跳f ...

  10. hdu 1875 最小生成树 prime版

    最小生成树prime版 大致的步骤 首先选取一个到集合最近的点 然后标记起在集合内部 然后更新最短距离 畅通工程再续 Time Limit: 2000/1000 MS (Java/Others)    ...