【C/C++学院】(4)c++开篇/类和对象/命名空间/类型增强/三目运算符/const专题/引用专题

1.类和对象

成员函数,成员变量,抽象封装的能力。

求圆的面积;

#include <iostream>
using namespace std;
class circle{
private:
    double m_r;//成员变量
public:
    void setR(double r)//成员函数
    {
        m_r = r;
    }
    double getR()
    {
        return m_r;
    }
    double getS()
    {
        return 3.14*m_r*m_r;
    }
};
void main()
{
    circle c1;
    c1.setR(4);
    cout << "r:" << c1.getR() << "s:" << c1.getS() << endl;
    c1.setR(5);
    cout << "r:" << c1.getR() << "s:" << c1.getS() << endl;
    system("pause");
}

2.命令空间

命名空间;c++对c的扩展。解决标识符冲突。

std::out  :: 域作用符。

#include <iostream>
namespace NameSpaceA{
    int a = 0;
}
namespace NameSpaceB{
    int a = 1;
    namespace NameSpaceC{
        struct Teacher{
            char name[10];
            int age;
        };
    }
}
void main()
{
    using namespace NameSpaceA;
    printf("NameSpaceA:a=%d\n", a);
    printf("NameSpaceB:a=%d\n", NameSpaceB::a);
    using NameSpaceB::NameSpaceC::Teacher;
    Teacher t1 = { "aaa", 3 };
    printf("t1.name = %s\n", t1.name);
    printf("t1.age = %d\n", t1.age);
    system("pause");
} 

3.语法增强

3.1register关键字增强

int main()

{

register int a = 0;

printf("&a = %x\n", &a);

system("pause");

return 0;

}

//register关键字 请求编译器让变量a直接放在寄存器里面,速度快

//在c语言中 register修饰的变量 不能取地址,但是在c++里面做了内容

register关键字的变化

register关键字请求“编译器”将局部变量存储于寄存器中

C语言中无法取得register变量地址

在C++中依然支持register关键字

C++编译器有自己的优化方式,不使用register也可能做优化

C++中可以取得register变量的地址

3.2struct类型增强


struct类型的加强:

C语言的struct定义了一组变量的集合,C编译器并不认为这是一种新的类型

C++中的struct是一个新类型的定义声明


struct Student

{

char name[100];

int age;

};

int main(int argc, char *argv[])

{

Student s1 = {"wang", 1};//struct Student s1={};

Student s2 = {"wang2", 2};

return 0;

}

4.三目运算符

#include <iostream>
using namespace std;

//在c++里面的三目运算符 返回是一个变量
//让表达式做左值
//1 左值 能被放在 = 做值 称为左值
//2 当左值的条件, 这段内存空间可以被你写

int main()
{
	int a = 10;
	int b = 20;
	int c = 31;

	//返回一个最小数 并且给最小数赋值成30
	//三目运算符是一个表达式 ,表达式不可能做左值
	//让表达式做左值
	(a < b ? a : b) = 30;//相当于c中的*((a < b ? &a : &b)) = 30;
	//在c中编译不过,报错
	printf("a = %d, b = %d\n", a, b);

	system("pause");

	return 0;
}

5.const专题

const 定义的变量, 在c++的编译器中, 做了一个符号表, key <--->value | a<-->10;

修改的时候, 只是修改了重新分配的空间, 对原来的const数据没有造成修改。

而在c中,却可以将const常量进行修改。

6.引用专题

引用在c++内部是一个常量指针。

type &name <---> type * const name;

引用的本质是c++编译器帮我们做了一个取地址的操作。

#include <iostream>
using namespace std;

void swap(int &a, int &b)
{
	int c = 0;
	c = a;
	a = b;
	b = c;
}

void swap2(int *a, int *b)
{
	int c = 0;
	c = *a;
	*a = *b;
	*b = c;
}
//引用和左值进行绑定的时候
void main()
{
	int a1 = 10; int b1 = 20;
	swap(a1, b1);
	printf("a1:%d, b1:%d", a1, b1);
	system("pause");
}

时间: 01-19

【C/C++学院】(4)c++开篇/类和对象/命名空间/类型增强/三目运算符/const专题/引用专题的相关文章

Java自学-类和对象 枚举类型

枚举类型 步骤 1 : 预先定义的常量 枚举enum是一种特殊的类(还是类),使用枚举可以很方便的定义常量 比如设计一个枚举类型 季节,里面有4种常量 public enum Season { SPRING,SUMMER,AUTUMN,WINTER } 一个常用的场合就是switch语句中,使用枚举来进行判断 注:因为是常量,所以一般都是全大写 public class HelloWorld { public static void main(String[] args) { Season se

【编程语言】Java中的类和对象learn by Imooc

 一.什么是类和对象 * 类是模子,确定对象将会拥有的特征(属性)和方法 * 类的特点: *     类是对象的类型 *     具有相同属性和方法的一组对象的集合 * 对象的属性 *     属性-对象具有的各种特征 *     每个对象的每个属性都有用的特定值 * 对象的方法 *     方法-对象执行的操作(能干什么) * 类和对象的关系 *     类是抽象的概念,仅仅是模板 *     对象是一个你能够看得到,摸得着的具体实体 二. 如何定义Java的类 * 1.类的重要性:所有Jav

Java —类和对象

类和对象 类是对象的类型,是具有相同的属性和方法的一组对象的集合. 定义类 访问修饰符 class 类名 { 数据类型 属性名: 访问修饰符 返回值类型 方法名 {} } 创建对象:类名 对象名 = new 类名(); 使用对象:引用对象的属性:对象名.属性名;引用对象的方法:对象名.方法名(); 可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立. 成员变量和局部变量 成员变量:在类中定义,描述对象将要有什么.可以在本类的方法或其他类的方法中使用.java会给成员变量一个初始

oc知识点 类和对象

第一讲  类和对象 1面向对象 OOP 面向对象编程的三大特性 :封装,继承,多态 2类和对象的概念和区别 类:具有相同特征和行为的事物的抽象 对象:就是类的实例  ,类是对象的类型 3类和对象的定义 接口部分: 对外声明类的特征和行为.(.h) 实现部分:行为的具体实现(.m) 接口部分标志 :@interface [email protected] 声明类实例变量(成员变量)和方法,及特征和行为 例 接口部分代码: @interface Teacher :NSObject{ NSString

一.类和对象

1.接口部分:对外声明类的行为和特征(类的定义分为:接口部分和实现部分) ① @interface 接口关键字:用于表示这是一个类的接口部分 接口部分功能:是定义类的静态特征和声明动态行为 @end 作为结束标志 对外接口:通过接口就可以在不知道实现的情况下,了解这个类有什么 Person:类名,每一个类都要起一个名字.首字母大写(类:对象的类型) NSObject:父类 @interface Person: NSObject ②静态特征:实例变量 ③实例变量必须在花括号中 ④创建实例变量的时候

Java学习笔记1——类和对象

面向对象 对象:万物皆对象 面向对象 类:模子,属性+方法,类是对象的类型,是具有相同属性和方法的一组对象的集合 对象属性:对象拥有的各种特征,"对象有什么" 对象方法:对象执行的操作,"对象能干什么" 类与对象的关系/区别:类是抽象的,仅仅是模版:对象是看得到,摸得着的具体实体.例如:'手机'类,对象为iPhone6,Lumia920 Java中的类 定义类:Java程序都以类class为组织单元 创建一个对象 //1.定义一个类 public class Tel

JAVA 类与对象

一.类 1.类的定义 类就是把数据与相关功能封装在一起,形成一种特殊的数据结构 2.类的特点 (1)类是对象的类型 (2)具有相同属性和方法的一组对象的集合. (3)同一个Java程序内,若定义了多个类,则最多只能由一个类声明为public,在这种情况下,文件名必须与声明称public的类名称相同 3.对象的属性: 对象具有的各种特征. 4.对象的方法: 对象执行的操作(能干什么). 5.类和对象的关系 类是抽象的概念,仅仅是模板.而对象是一个具体实体. 二.定义类 1.类的一般结构 三.对象的

Python 类与对象简单理解及总结

类: 类,指一群具有相同属性和方法的对象的抽象. 类的更严格的定义是由某种特定的元数据所组成的内聚的包.它描述了一些对象的行为规则,而这些对象就被称为该类的实例.类有接口和结构.接口描述了如何通过方法与类及其实例互操作,而结构描述了一个实例中数据如何划分为多个属性. 对象: 对象是类的实例化,指某个具体的东西. 对象:一个对象有自己的状态.行为和唯一的标识:所有相同类型的对象所具有的结构和行为在他们共同的类中被定义. 状态(state):包括这个对象已有的属性(通常是类里面已经定义好的)在加上对

ACCP8.0 第一学期java课程-关于类和对象

本章重点1.掌握类和对象2.理解封装3.会创建类和对象 本章难点创建类和对象 一 理解类1.类描述出了事物的特征和行为2.类也可以理解成一系列相同特点和相同行为的事物的集合3.类是一个模板,通过这个模板能刻画出许多具体的实例(比如说:个人简历模板,我们填完以后能刻画出许许多多的完整简历)4.类是一个泛指,比如说谈到一个名词或者事物,脑子里出现的概念很模糊,这就是一个类. 比如说:人类,动物,这些词都是一系列比较模糊的名词,他们都是类5.每一个类都有一些特征,我们称之为属性6.每一个类都有一些行为