C++ Inheritance
#include <iostream>
using namespace std;
class Base
{
public:
Base()
{
echo();
}
void echo()
{
cout << "Base\n";
}
};
class Derived
:
public Base
{
public:
Derived()
{
echo();
}
void echo()
{
cout << "Derived\n";
}
};
int main() {
Base* a = new Derived();
a->echo();
return 0;
}

Swap with Zero
Only swap with the number zero is allowed in the sorting.
#include <iostream>
using namespace std;
/**
* 交换数组里n和0的位置
* array: 存储[0-n)的数组
* len: 数组长度
* n: 数组里要和0交换的数
*/
void swap_with_zero(int* array, int len, int n)
{
int pos_zero, pos_n;
for(int i = 0; i < len; ++i) {
if(array[i] == 0) pos_zero = i;
if(array[i] == n) pos_n = i;
}
swap(array[pos_zero], array[pos_n]);
}
class Solution {
public:
/**
* 调用方法swap_with_zero来对array进行排序
*/
void sort(int* array, int len) {
bool isFound = false;
while(!isFound) {
if(array[0] == 0) {
for(int i = 0; i < len; ++i) {
if(array[i] != i) {
swap_with_zero(array, len, array[i]);
break;
} else {
if(i == len - 1) {
isFound = true;
break;
}
}
}
}
for(int i = 0; !isFound && i < len; ++i) {
if(array[i] == 0) {
swap_with_zero(array, len, i);
break;
}
}
}
}
};
int main() {
Solution sol;
int array[] = {2, 3, 0, 5, 1, 4};
sol.sort(array, 6);
for(int i = 0; i < 6; ++i) {
cout << array[i];
}
return 0;
}