// 整數
int age = 25;
short score = 100;
long population = 7000000;
long long worldPop = 8000000000;
// 浮點數
float price = 19.99f;
double pi = 3.1415926535;
// 字元與布林
char grade = 'A';
bool isActive = true;
// 常數
const int MAX_SIZE = 100;
constexpr double GRAVITY = 9.8;
第三章:運算子 基礎
運算子
int a = 10, b = 3;
// 算術運算子
a + b; // 13 加法
a - b; // 7 減法
a * b; // 30 乘法
a / b; // 3 除法
a % b; // 1 取餘數// 比較運算子
a == b; // false
a != b; // true
a < b; // false// 邏輯運算子
(a > 5) && (b < 10); // AND
(a > 5) || (b > 10); // OR
第四章:流程控制 基礎
條件與迴圈
// if-else
if (score >= 90) {
std::cout << "A";
} else if (score >= 80) {
std::cout << "B";
} else {
std::cout << "C";
}
// for 迴圈
for (int i = 0; i < 5; i++) {
std::cout << i << " ";
}
// while 迴圈
int i = 0;
while (i < 5) {
std::cout << i++ << " ";
}
第五章:函數 中等
函數定義
// 函數定義
int add(int a, int b) {
return a + b;
}
// 預設參數
void greet(std::string name, std::string prefix = "Hello") {
std::cout << prefix << ", " << name << "!";
}
// Lambda 函數 (C++11)
auto square = [](int x) { return x * x; };
std::cout << square(5); // 25
第六章:指標與參考 進階
指標與參考
// 指針
int x = 10;
int* ptr = &x; // ptr 存 x 的地址
*ptr = 20; // 修改 x 為 20// 參考 (別名)
int& ref = x; // ref 是 x 的別名
ref = 30; // x 也變成 30// 動態記憶體
int* p = new int(42); // 配置
delete p; // 釋放// Smart Pointer (推薦)
auto smartPtr = std::make_unique<int>(42); // 自動釋放
第七章:類別與物件 中等
類別 (Class)
class Dog {
private:
std::string name;
int age;
public:
// 建構函式
Dog(std::string n, int a) : name(n), age(a) {}
// 成員函式
void bark() {
std::cout << name << " says Woof!";
}
int getAge() { return age; }
};
// 使用
Dog myDog("Lucky", 3);
myDog.bark();
第八章:繼承與多型 進階
繼承
class Animal {
public:
void eat() { std::cout << "Eating..."; }
};
class Dog : public Animal {
public:
void bark() { std::cout << "Woof!"; }
};
// 多型
class Animal {
public:
virtual void makeSound() { std::cout << "..."; }
};
class Dog : public Animal {
public:
void makeSound() override { std::cout << "Woof!"; }
};
// auto 類型推斷
auto x = 10; // int
auto name = "Anzu"; // const char*// range-based for
for (auto n : nums) { std::cout << n; }
// std::optional (C++17)
std::optional<int> maybeNum;
// std::variant (C++17)
std::variant<int, std::string>> value;
// concepts (C++20)
template<typename T>
requires std::is_integral_v<T>
T add(T a, T b) { return a + b; }