C++ 程序设计(面向对象进阶)

  1. Reference 引用
  2. nullptr and Dynamic Memory Allocation

什么都能干的编程语言,和干活糙快猛的编程语言分别是 C++ 、 Python

ISO/IEC 14882:2011标准之前的C++被称为 Classic C++

使用Visual Studio

编译C++程序时,需要针对每个项目单独指定所使用的C++标准

编程范式:
C语言支持结构化编程范式
C++ 面向对象编程范式
泛型编程范式
函数式编程范式

参考书:
《C++程序设计》 第三版 梁勇
《Essential C++》 (有中译本)
作者:Stanley B. Lippman
适于有编程基础的人
《The C++ Programming language》 (有中译本)
作者:Bjarne Stroustrup
一本每个人都应该买但不一定要看的书
可以当字典用,不适用于初学者

开发工具:
Visual Studio

cin
cout
c 代表 character

Reference 引用

引用关系不可变,引用在定义的时候就必须被初始化

& 运算符有三个含义:
位与
取地址
定义一个引用类型

int x, &rx = x;
// or
int x;
int&  rx = x;

//pass by value
void swap(int x,  int y){
  int  t;
  t=x;  x=y;  y=t;
}
int main() {
  int a=5, b{10};
  cout << "Before: a=" << a << " b=" << b << endl;
  swap( a,  b );
  cout << "After:  a=" << a << "b=" << b << endl;
  return 0;
}

//pass by pointer
void swap(int* x,  int* y){
  int  t;
  t=*x;  *x=*y;  *y=t;
}
int main() {
  auto a{5}, b{10};
  cout<< "Before: a=" << a << " b=" << b << endl;
  swap( &a,  &b );
  cout<< "After: a=" << a << "b=" << b << endl;
  return 0;
}

//pass by reference
void swap(int& x,  int& y){
  int  t;
  t=x;  x=y;  y=t;
}
int main() {
  auto a{5}, b{10};
  cout<< "Before: a=" << a << " b=" << b << endl;
  swap( a,  b );
  cout << "After: a=" << a << "b=" << b << endl;
  return 0;
}

nullptr and Dynamic Memory Allocation

C++03中,空指针:0 带来的二义性问题
在C++11中,还能使用0来代表空指针吗?
new/delete 与 malloc/free 的区别是什么?
auto x{10}; 等价 int x{10}
new 和 delete 成对出现


请多多指教。

文章标题:C++ 程序设计(面向对象进阶)

本文作者:顺强

发布时间:2020-02-24, 23:59:00

原始链接:http://shunqiang.ml/c-cpp/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏