- 博客(13)
- 资源 (3)
- 收藏
- 关注
原创 试题:实现一个不能被继承的类(下)
我们也不必气馁, 我们可以用类模板的特化来做, 实现如下:template class FinalMaker;class A;template <>class FinalMaker{private: ~FinalMaker() { } friend class A;};class A : virtual public FinalMak
2011-12-31 19:19:39 558
原创 试题:实现一个不能被继承的类(上)
其实我们根本没法写出满足字面要求的代码, 其实我们要实现的是:写一个类, 使继承这个类的子类不能实例化对象(不论栈上还是堆上) 看了点书的人都会想到这个办法: 将自己的类的析构函数(或所有构造函数+拷贝构造函数)声明为private, 这样继承它的子类就不能实例化对象了这个方法有一个缺点: 我们只能通过下面的方式创建对象了1.在static成员函数(也可以是友元函数)中返回一个局部
2011-12-31 19:16:47 929 2
原创 试题:找出数组中元素和为指定值的所有组合
本问题来自论坛, 题意大概如下:指定一个数组, 和一个数值, 找出数组中元素和为这个指定数值的所有组合如指定数组元素为[1, 2, 3], 而指定数值为6, 则满足要求的组合为:{1, 2}, {3}#include using namespace std;void solve(int n, int data[], int start, int end,
2011-12-30 18:28:31 6086 2
原创 试题:八皇后问题
问题背景:八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。#include #inclu
2011-12-30 18:20:53 831
原创 试题:全排列
#include using namespace std;#define NUM_COUNT 6int count; // 全排列个数int num[NUM_COUNT]; // 给定全排列数据void swap(int & a, int & b){ if (a != b) { a ^= b;
2011-12-30 18:16:54 761
原创 试题:组合
#include using namespace std;#define NUM_COUNT 6int size; // data数组中记录元素个数int count; // 组合个数int num[NUM_COUNT]; // 给定组合数据int data[NUM_COUNT]; // 参与组合元素voi
2011-12-30 18:13:55 650
原创 试题:输入n, 得到以n为边长的正方形网格, 奇数圈为A, 偶数圈为B
刚在论坛碰到这个题, 记下当时的解法#include using namespace std;void show(unsigned int n){ const char first = (((n + 1) % 4) > 1 ? 'A' : 'B'); const char second = ('A' == first ? 'B' : 'A');
2011-12-30 13:04:17 769
原创 笔记:虚函数
#include using namespace std;class A{public: A() { cout << "A::A()" << endl; sayhello(); } virtual ~A() { sayhello(); cout << "
2011-12-29 16:42:27 611
原创 笔记:作用域与可见性
#include using namespace std;int main(){ const char x = 100; // char, short, int, long { // block 1 int x = x; cout << x << endl; // random data } { /
2011-12-29 16:00:20 558
原创 笔记:防止调用拷贝构造函数时的自我拷贝
#include using namespace std;class A{public: A() { cout << "A::A()" << endl; } A(const A & ra) { cout << "A::A(const A & ra)" << endl; i
2011-12-29 15:35:01 1002 1
原创 笔记:成员函数指针
#include using namespace std;class A{public: int memfunc(int i = 0) { cout << "A::memfunc" << endl; } static int clsfunc(int i = 0) { cout << "A:
2011-12-24 08:56:19 648 2
原创 笔记:RTTI与多态
#include #include using namespace std;class A{public: void show() { cout << "A::show()" << endl; }private: virtual void donothing() { }};cl
2011-12-22 19:01:36 1146
原创 初级数独破解
#ifndef __SUDOKU_H__#define __SUDOKU_H__#include struct Region{ int index; // 原始下标 int count; // 已填个数 Region() : index(0), count(0) { } bool operator < (const Region & rh
2011-12-06 18:02:49 822
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人