//若程序的输出如下所示:
10,11
12,13
请完善程序。//
#include<iostream>
using namespace std ;
class BaseA {
private :
int a ;
public :
BaseA (int i = 0) { a = i; }
int getA(void) { return a ; }
void show(void) { cout << a << endl ; }
};
class DeriveB : public BaseA {
private:
BaseA b ;
public:
DeriveB(int i , int j) :
空1{ }
void show(void) {
空2;
}
};
int main(void) {
int i ;
DeriveB b[2] = { DeriveB(10 , 11) , DeriveB(12 , 13) };
for (i = 0 ; i < 2 ; i++)
空3
;
return 0 ;
}
#include<iostream>
using namespace std ;
class BaseA {
private :
int a ;
public :
BaseA (int i = 0) { a = i; }
int getA(void) { return a ; }
void show(void) { cout << a << endl ; }
};
class DeriveB : public BaseA {
private:
BaseA b ;
public:
DeriveB(int i , int j) :
BaseA(i){ b = BaseA(j); }
void show(void) {
cout << getA() << " " << b.getA() << endl;
}
};
int main(void) {
int i ;
DeriveB b[2] = { DeriveB(10 , 11) , DeriveB(12 , 13) };
for (i = 0 ; i < 2 ; i++)
b[i].show();
return 0 ;
}
/*
红黑树的几点性质在于:
1、根结点必须是红色的
2、不会出现连续的红色结点
3、所有路径的黑色结点个数是相同的
*/
bool _CheckBlance(Node* root, int isBlackNum, int count)
{
if (!root)
{
if (isBlackNum != count)
{
printf("黑色结点个数不均等\n");
return false;
}
return true; //遍历完整棵树,如果以上列举的非法情况都不存在就返回true
}
//检查是否出现连续的红色结点
if (root->_col == RED && root->_parent->_col == RED)
{
printf("出现了连续的红色结点\n");
return false;
}
//走前序遍历的过程中记录每一条路径黑色结点的个数
if (root->_col == BLACK) count++;
//递归左右子树
return _CheckBlance(root->_left, isBlackNum, count) &&
_CheckBlance(root->_right, isBlackNum, count);
}
//验证红黑树
bool CheckBlance()
{
if (!_root) return true; //树为null
//根结点是黑色的
if (_root->_col != BLACK)
{
printf("根结点不是黑色的\n");
return false;
}
//每一条路径黑色结点的个数必须是相同的,
int isBlcakNum = 0;
Node* left = _root;
while (left)
{
if (left->_col == BLACK) isBlcakNum++; // 统计某一条路径的所以黑色结点个数
left = left->_left;
}
//检查连续的红色结点,检查每一条路径的黑色结点个数是否相等
return _CheckBlance(_root, isBlcakNum ,0);
}
作为IT专家,我可以给出以下关于C++程序类知识点的详细信息:
(1)语法基础:了解基本数据类型、运算符、表达式等。
(2)面向对象基础:掌握类的定义和使用、继承、多态等相应的知识,编写C++类。
(3)语法进阶:掌握流程控制语句,如if-else,for,while,switch等语言特性,理解基本的语法。
(4)STL标准模板库:熟悉STL标准库的使用,包括vector,list,map等常用容器及其算法,了解模板技术基本特点,掌握类模板和函数模板的实现。
(1)常见算法类型:掌握常见的排序、查找、字符串、图论等基础算法类型。
(2)常用数据结构:掌握数组、链表、队列、栈、二叉树等基本数据结构,并了解基本的图结构。
(1)重点掌握知识点:掌握网络模型、TCP/UDP协议、socket编程、网络编程等相关知识。
(2)推荐书籍:《TCP/IP详解》、《UNIX网络编程》等。
(1)重点掌握:掌握关系型数据库的设计方法、SQL语言和MySQL数据库的使用方法。
(2)推荐书籍:《MySQL实战45讲》、《数据库系统原理》等。
(1)进程和线程:了解进程和线程的概念,理解各自的特点,以及进程和线程之间的关系。
(2)调度算法:了解常用的进程和线程调度算法,如时间片轮转、优先级调度、多级反馈队列等。
(3)线程同步机制:了解互斥锁、条件变量、信号量等常见的线程同步机制。
(4)推荐书籍:《现代操作系统》、《Linux/UNIX系统编程手册》等。
(1)Linux系统操作和命令:掌握Linux系统的基本操作和常用命令,如文件操作、文本编辑器、程序编译等。
(2)推荐书籍:《鸟哥的Linux私房菜》等。
(1)重点掌握:掌握Linux网络编程的相关知识,如IP地址、套接字、TCP/IP协议等。
(2)推荐书籍:《UNIX网络编程》等。
在学习以上知识点的基础上,可以准备一些基础向的相关项目,如网络库、web服务器/http服务器、简易版STL库、局域网聊天室、分布式日志系统等。此外,可以参考一些C++常用库,如STL库、Boost库等,造一些轮子或者做些有趣的小工具。
以上是我对于关于C++程序类知识点的详细信息的总结,希望对您有所帮助。