本文共 3305 字,大约阅读时间需要 11 分钟。
成员函数,成员变量,抽象封装的能力。
求圆的面积;
#includeusing 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");}
#includenamespace 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");}
//register关键字 请求编译器让变量a直接放在寄存器里面,速度快
//在c语言中 register修饰的变量 不能取地址,但是在c++里面做了内容
register关键字的变化
register关键字请求“编译器”将局部变量存储于寄存器中
C语言中无法取得register变量地址
在C++中依然支持register关键字
C++编译器有自己的优化方式,不使用register也可能做优化
C++中可以取得register变量的地址
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; } |
#includeusing 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;}
#includeusing 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");}
#include "iostream"using namespace std;#define MYFUNC(a, b) ((a) < (b) ? (a) : (b))//inline请求关键字, 内联编译//内联函数的函数体,需要和实现写在一块inline int myfunc(int a, int b){ return a < b ? a : b;}int main(){ int a = 1; int b = 3; //int c = myfunc(++a, b); int c = MYFUNC(++a, b);//===> ((++a) < (b) ? (++a) : (b)); printf("a = %d\n", a); //3 printf("b = %d\n", b);//3 printf("c = %d\n", c); //3 system("pause"); return 0;}
#include "iostream"using namespace std;int func(int x) // int(int a){ return x;}int func(int a, int b){ return a + b;}int func(const char* s){ return strlen(s);}//定义了一个 指针 类型 (指向函数的指针类型)typedef int(*PFUNC)(int a); // int(int a)void main(){ PFUNC p = func; int c = p(1); printf("c = %d\n", c); system("pause");}