C++手册全面详解

发布时间:2023-05-21

C++ 手册

一、基础语法

C++是一种基于对象的编程语言,基础语法主要包括数据类型、控制语句、函数和指针等。

1. 数据类型:

#include <iostream>
using namespace std;
int main() {
   int i = 10;
   float f = 10.5;
   double d = 10.56789;
   char c = 'A';
   bool b = true;
   cout << "Value of i : " << i << endl;
   cout << "Value of f : " << f << endl;
   cout << "Value of d : " << d << endl;
   cout << "Value of c : " << c << endl;
   cout << "Value of b : " << b << endl;
   return 0;
}

2. 控制语句:

#include <iostream>
using namespace std;
int main() {
   int a = 2, b = 3;
   if(a > b) {
      cout << "a is greater than b" << endl;
   } else {
      cout << "b is greater than a" << endl;
   }
   for(int i = 0; i < 5; i++) {
      cout << "The value of i is: " << i << endl;
   }
   return 0;
}

3. 函数:

#include <iostream>
using namespace std;
int add(int x, int y) {
   return x + y;
}
int main() {
   int a = 5, b = 3, c;
   c = add(a, b);
   cout << "The sum of a and b is: " << c << endl;
   return 0;
}

4. 指针:

#include <iostream>
using namespace std;
void swap(int *x, int *y) {
   int temp = *x;
   *x = *y;
   *y = temp;
}
int main() {
   int a = 5, b = 3;
   cout << "Before swapping: a = " << a << " and b = " << b << endl;
   swap(&a, &b);
   cout << "After swapping: a = " << a << " and b = " << b << endl;
   return 0;
}

二、面向对象

C++是一种面向对象的编程语言,实现面向对象编程需要掌握类、继承、多态等概念。

1. 类:

#include <iostream>
using namespace std;
class Rectangle {
   public:
      int length;
      int width;
      int getArea() {
         return length * width;
      }
};
int main() {
   Rectangle rectangle;
   rectangle.length = 5;
   rectangle.width = 3;
   cout << "The area of rectangle is: " << rectangle.getArea() << endl;
   return 0;
}

2. 继承:

#include <iostream>
using namespace std;
class Shape {
   public:
      virtual int getArea() = 0;
};
class Rectangle : public Shape {
   public:
      int length;
      int width;
      int getArea() {
         return length * width;
      }
};
int main() {
   Rectangle rectangle;
   rectangle.length = 5;
   rectangle.width = 3;
   cout << "The area of rectangle is: " << rectangle.getArea() << endl;
   return 0;
}

3. 多态:

#include <iostream>
using namespace std;
class Shape {
   public:
      virtual int getArea() = 0;
};
class Rectangle : public Shape {
   public:
      int length;
      int width;
      int getArea() {
         return length * width;
      }
};
class Circle : public Shape {
   public:
      int radius;
      int getArea() {
         return 3.14 * radius * radius;
      }
};
int main() {
   Shape *shape;
   Rectangle rectangle;
   Circle circle;
   shape = &rectangle;
   rectangle.length = 5;
   rectangle.width = 3;
   cout << "The area of rectangle is: " << shape->getArea() << endl;
   shape = &circle;
   circle.radius = 5;
   cout << "The area of circle is: " << shape->getArea() << endl;
   return 0;
}

三、异常处理

C++提供了异常处理机制,异常是程序执行期间可能出现的意外情况。

1. catch和throw语句:

#include <iostream>
using namespace std;
int division(int a, int b) {
   if(b == 0) {
      throw "Division by zero!";
   }
   return a / b;
}
int main() {
   int a = 10, b = 0;
   try {
      int c = division(a, b);
      cout << "The result of division is: " << c << endl;
   } catch(const char* msg) {
      cerr << msg << endl;
   }
   return 0;
}

2. 自定义异常:

#include <iostream>
using namespace std;
class MyException : public exception {
   public:
      const char* what() const throw() {
         return "My Exception Occurred";
      }
};
int division(int a, int b) {
   if(b == 0) {
      throw MyException();
   }
   return a / b;
}
int main() {
   int a = 10, b = 0;
   try {
      int c = division(a, b);
      cout << "The result of division is: " << c << endl;
   } catch(exception& e) {
      cout << e.what() << endl;
   }
   return 0;
}

四、STL库

C++的STL库为程序员提供了很多实用的数据结构和算法。

1. vector容器:

#include <iostream>
#include <vector>
using namespace std;
int main() {
   vector<int> v;
   for(int i = 0; i < 5; i++) {
      v.push_back(i);
   }
   cout << "The content of vector is: ";
   for(int i = 0; i < v.size(); i++) {
      cout << v[i] << " ";
   }
   return 0;
}

2. map容器:

#include <iostream>
#include <map>
using namespace std;
int main() {
   map<string, int> m;
   m["apple"] = 5;
   m["banana"] = 3;
   m["cherry"] = 8;
   cout << "The price of apple is: " << m["apple"] << endl;
   return 0;
}

五、文件处理

C++可以用于文件读写操作。

1. 写文件:

#include <iostream>
#include <fstream>
using namespace std;
int main() {
   ofstream file("example.txt");
   if(file.is_open()) {
      file << "Hello World!\n";
      file << "The value of pi is: " << 3.14 << endl;
      file.close();
   } else {
      cout << "Unable to open file for writing!" << endl;
   }
   return 0;
}

2. 读文件:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
   string line;
   ifstream file("example.txt");
   if(file.is_open()) {
      while(getline(file, line)) {
         cout << line << endl;
      }
      file.close();
   } else {
      cout << "Unable to open file for reading!" << endl;
   }
   return 0;
}

以上就是C手册的全面详解,包括基础语法、面向对象、异常处理、STL库和文件处理等方面。通过学习这些基本知识,你可以编写出自己的C程序,从而实现各种应用。