c++完善程序类知识点


//若程序的输出如下所示:
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 ;
}

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7602581
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:c++数组程序设计总结
  • 除此之外, 这篇博客: C++实现红黑树中的 验证 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • /*
    	红黑树的几点性质在于:
    	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);
    }
    
  • 您还可以看一下 郝悦集老师的C++编程课程中的 C++类模板小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    作为IT专家,我可以给出以下关于C++程序类知识点的详细信息:

    1. C++语言基础:

    (1)语法基础:了解基本数据类型、运算符、表达式等。

    (2)面向对象基础:掌握类的定义和使用、继承、多态等相应的知识,编写C++类。

    (3)语法进阶:掌握流程控制语句,如if-else,for,while,switch等语言特性,理解基本的语法。

    (4)STL标准模板库:熟悉STL标准库的使用,包括vector,list,map等常用容器及其算法,了解模板技术基本特点,掌握类模板和函数模板的实现。

    1. 算法与数据结构:

    (1)常见算法类型:掌握常见的排序、查找、字符串、图论等基础算法类型。

    (2)常用数据结构:掌握数组、链表、队列、栈、二叉树等基本数据结构,并了解基本的图结构。

    1. 计算机网络:

    (1)重点掌握知识点:掌握网络模型、TCP/UDP协议、socket编程、网络编程等相关知识。

    (2)推荐书籍:《TCP/IP详解》、《UNIX网络编程》等。

    1. 数据库:

    (1)重点掌握:掌握关系型数据库的设计方法、SQL语言和MySQL数据库的使用方法。

    (2)推荐书籍:《MySQL实战45讲》、《数据库系统原理》等。

    1. 操作系统:

    (1)进程和线程:了解进程和线程的概念,理解各自的特点,以及进程和线程之间的关系。

    (2)调度算法:了解常用的进程和线程调度算法,如时间片轮转、优先级调度、多级反馈队列等。

    (3)线程同步机制:了解互斥锁、条件变量、信号量等常见的线程同步机制。

    (4)推荐书籍:《现代操作系统》、《Linux/UNIX系统编程手册》等。

    1. Linux系统:

    (1)Linux系统操作和命令:掌握Linux系统的基本操作和常用命令,如文件操作、文本编辑器、程序编译等。

    (2)推荐书籍:《鸟哥的Linux私房菜》等。

    1. Linux网络编程:

    (1)重点掌握:掌握Linux网络编程的相关知识,如IP地址、套接字、TCP/IP协议等。

    (2)推荐书籍:《UNIX网络编程》等。

    1. 项目准备:

    在学习以上知识点的基础上,可以准备一些基础向的相关项目,如网络库、web服务器/http服务器、简易版STL库、局域网聊天室、分布式日志系统等。此外,可以参考一些C++常用库,如STL库、Boost库等,造一些轮子或者做些有趣的小工具。

    以上是我对于关于C++程序类知识点的详细信息的总结,希望对您有所帮助。