1、为什么类中引用成员函数?

  类将属性和方法做了封装。类是一种数据类型,也就是:固定大小内存块的别名。

  类的定义是一个抽象的概念,定义时不分配内存,当用类定义对象时,才分配一个固定大小的内存块。

  此时,定义对象后,类内定义的变量就会执行一次初始化,但是主函数输出area时就是乱码,因为是直接去对应内存取值,而不是调用函数计算。

  下面例子就说明了,类内成员函数的作用。

class circle
{
public:
double r;
double pi = 3.14;
// 定义一个对象后,初始化时已经执行了,当时r是一个随机值,所以结果:area内存中也是一个随机值
double area = pi*r*r; double getS(double r)
{
double ms = pi*r*r;
return ms;
}
}; int main()
{
circle c1;
cout << "Please input your r: " << endl;
cin >> c1.r; // 执行此句话,只是从变量所标示的内存空间中拿值,并没有执行这句话。
// 所以对 r 赋值, 对area没有任何影响,
cout << c1.area << endl; //乱码
cout << c1.getS(c1.r) << endl; //输出:正确的面积值 system("pause");
return ;
}

 2、命名空间的使用

(1)当使用 #include <iostream> 时,必须和,using namespace std;一起使用。因为,该头文件没有定义全局命名空间,如果不想引用就需要:std::cout,指定命名空间;

(2)C++标准规定,头文件不用后缀 .h ,如果使用后缀,则调用的C得库。

(3)C++可以自己定义命名空间,而且可以嵌套命名空间。

#include <iostream>
using namespace std; namespace namespaceA
{
int a = ;
} namespace namespaceB
{
int a = ;
namespace namespaceC
{
class Teacher
{
public:
char name[];
int age;
};
}
} void main()
{
using namespace namespaceA;
using namespace namespaceB;
cout << namespaceA::a << endl;
cout << namespaceB::a << endl; using namespaceB::namespaceC::Teacher;
Teacher t1;
t1.age = ;
cout << t1.age<<endl;
system("pause");
}

C++(十六) — 类中引用成员函数、命名空间的使用的更多相关文章

  1. 【Java.Regex】使用正则表达式查找一个Java类中的成员函数

    代码: import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; imp ...

  2. C++类中引用成员和常量成员的初始化(初始化列表)

    如果一个类是这样定义的: Class A { public: A(int pram1, int pram2, int pram3); privite: int a; int &b; const ...

  3. c++ 类中模版成员函数

    C++函数模版与类模版. template <class T> void SwapFunction(T &first, T &second){ }//函数模版 templa ...

  4. 对类中的成员函数的定义和声明最后添加一个const是什么意思?

    1.const修饰的成员函数只能调用const修饰的成员函数,且不能修改数据成员变量的值. 2.const修饰的类对象只能调用const修饰的成员函数. 3.const修饰的类对象可以调用非const ...

  5. C++类中的成员函数和构造函数为模板函数时的调用方法

    所谓模板函数其实就是建立一个通用函数,这个通用函数的形参类型不具体指定,用一个虚拟类型来代表,这个通用函数就被称为函数模板. 例: #include <iostream> using na ...

  6. C++类的成员函数(在类外定义成员函数、inline成员函数)

    类的成员函数(简称类函数)是函数的一种,它的用法和作用和前面介绍过的函数基本上是一样的,它也有返回值和函数类型,它与一般函数的区别只是:它是属于一个类的成员,出现在类体中.它可以被指定为private ...

  7. C++:类中的赋值函数

    先来看一个例子: #include<iostream> #include<string> using namespace std; class Student{ public: ...

  8. C++中的类继承(2)派生类的默认成员函数

    在继承关系里面, 在派生类中如果没有显示定义这六个成员 函数, 编译系统则会默认合成这六个默认的成员函数. 构造函数. 调用关系先看一段代码: class Base { public : Base() ...

  9. C++模板编程中只特化模板类的一个成员函数

    模板编程中如果要特化或偏特化(局部特化)一个类模板,需要特化该类模板的所有成员函数.类模板中大多数成员函数的功能可能是一模一样的,特化时我们可能只需要重新实现1.2个成员函数即可.在这种情况下,如果全 ...

随机推荐

  1. centos6.5关闭防火墙命令

    1.永久性生效,重启后不会复原 开启: chkconfig iptables on 关闭: chkconfig iptables off 2.即时生效,重启后复原 开启: service iptabl ...

  2. Java创建Timestamp的几种方式

    1.java创建Timestamp的几种方式 Timestamp time1 = new Timestamp(System.currentTimeMillis()); Timestamp time2 ...

  3. kubernetes,Docker网络相关资料链接

    1.Why kubernetes not doesn't use libnetwork http://blog.kubernetes.io/2016/01/why-Kubernetes-doesnt- ...

  4. 流畅的python 14章可迭代的对象、迭代器 和生成器

    可迭代的对象.迭代器和生成器 迭代是数据处理的基石.扫描内存中放不下的数据集时,我们要找到一种惰性获取数据项的方式,即按需一次获取一个数据项.这就是迭代器模式(Iterator pattern). 迭 ...

  5. Java排序算法总结(转载)

    排序算法 平均时间复杂度 冒泡排序 O(n2) 选择排序 O(n2) 插入排序 O(n2) 希尔排序 O(n1.5) 快速排序 O(N*logN) 归并排序 O(N*logN) 堆排序 O(N*log ...

  6. sql查询原理和Select执行顺序

    一 sql语句的执行步骤 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义. 2) 语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限. 3)视图转换,将涉及视图的 ...

  7. c++ 11nullptr

    1. 引入nullptr的原因 引入nullptr的原因,这个要从NULL说起.对于C和C++程序员来说,一定不会对NULL感到陌生.但是C和C++中的NULL却不等价.NULL表示指针不指向任何对象 ...

  8. go——接口(二)

    多态是指代码可以根据类型的具体实现采取不同行为的能力. 如果一个类型实现了某个接口,所有使用这个接口的地方,都可以支持这种类型的值. 标准库里有很好的例子,如io包里实现的流式处理接口. io包提供了 ...

  9. Django-进阶之路--信号

    Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行 ...

  10. Java中的静态方法是什么?

    静态方法是使用公共内存空间的,就是说所有对象都可以直接引用,不需要创建对象再使用该方法. 例如,我创建一个类,里面有一个静态方法: class Test{ public static int z(in ...