秋月白xixi 2023-12-18 16:37 采纳率: 58.3%
浏览 10
已结题

这几个代码应该是什么样的,能不能解答一下

1、请问这个代码应该怎么写哇,要求采用形参的方式

img

2、c++:求1000以内被9整除的所有自然数的总和,并显示最大和最小的数(>0)。

3、这个指针应该怎么选,能不能帮忙解释一下?

img

4.第三个的代码应该是什么样的,能不能帮忙看一看?
(1).写一个类,并创建其对象,利用该对象调用类中的某个公有成员函数,输出该类某个私有数据成员的值。

#include <iostream>
using namespace std;
class  CA
{ 
public:
    CA(int x = 10)
    { i =x; }
    ~CA() {    }
     int GetI();
    void  SetI(int x); 
private:
    int  i;
};
int CA::GetI()
{
    return i;
}
void CA::SetI(int x)
{
    i=x;
}

int  main()
{
CA a1;
a1.SetI(5);
cout<<a1.GetI()<<endl;    
return 0;    
}

(2)以1中创建的类作为父类,私有派生一个子类,然后用子类的对象去调用父类的某个公有成员函数,贴出编译结果(编译会有错误),并分析原因。

#include <iostream>
using namespace std;
class  CA
{ 
public:
    CA(int x = 10)
    { i =x; }
    ~CA() {    }
     int GetI();
    void  SetI(int x); 
private:
    int  i;
};
int CA::GetI()
{
    return i;
}
void CA::SetI(int x)
{
    i=x;
}
class CB :private CA
{        
private:
int m;
};
int  main()
{
 CA a1;
a1.SetI(5);
cout<<a1.GetI()<<endl;    
CB b1;
cout<<b1.GetI()<<endl;    
return 0;    
}

(3)仅补充子类代码(派生类型不可由私有改为公有),使子类对象能够改变并输出父类的私有数据成员的值。
贴出运行结果,并解释修改理由。

  • 写回答

12条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2023-12-18 16:38
    关注

    由人工智能和答主提供,可以参考如下,如果回答的不正确,及时评论区回复,我追加回答,谢谢。


    1. 请问这个代码应该怎么写哇,要求采用形参的方式?
    #include <iostream>
    using namespace std;
    
    class MyClass {
    public:
        void display(int x) {
            cout << "The value is: " << x << endl;
        }
    };
    
    int main() {
        MyClass obj;
        int value = 42;
        obj.display(value);
        return 0;
    }
    
    1. C++:求1000以内被9整除的所有自然数的总和,并显示最大和最小的数(>0)。
    #include <iostream>
    using namespace std;
    
    int main() {
        int sum = 0;
        int max_num = 0;
        int min_num = 999;
    
        for (int i = 1; i <= 1000; i++) {
            if (i % 9 == 0) {
                sum += i;
                if (i > max_num) {
                    max_num = i;
                }
                if (i < min_num) {
                    min_num = i;
                }
            }
        }
    
        cout << "Sum: " << sum << endl;
        cout << "Max: " << max_num << endl;
        cout << "Min: " << min_num << endl;
    
        return 0;
    }
    
    1. 这个指针应该怎么选,能不能帮忙解释一下?

    指针是用来存储内存地址的变量,它可以用于访问和操作内存中的数据。在C++中,指针的类型通常为int*double*等。选择哪种类型的指针取决于你想要操作的数据类型。例如,如果你想要操作一个整数数组,那么你应该使用int*类型的指针。

    1. 第三个的代码应该是什么样的,能不能帮忙看一看?

    (1)写一个类,并创建其对象,利用该对象调用类中的某个公有成员函数,输出该类某个私有数据成员的值。

    #include <iostream>
    using namespace std;
    
    class MyClass {
    public:
        MyClass(int x) : i(x) {}
        ~MyClass() {}
    
        int GetI() { return i; }
        void SetI(int x) { i = x; }
    
    private:
        int i;
    };
    
    int main() {
        MyClass obj(42);
        cout << obj.GetI() << endl;
        return 0;
    }
    

    (2)以1中创建的类作为父类,私有派生一个子类,然后用子类的对象去调用父类的某个公有成员函数,贴出编译结果(编译会有错误),并分析原因。

    #include <iostream>
    using namespace std;
    
    class CA {
    public:
        CA(int x = 10) { i = x; }
        ~CA() {}
    
        int GetI() { return i; }
        void SetI(int x) { i = x; }
    
    private:
        int i;
    };
    
    class CB : private CA {
    public:
        CB(int x = 10) : CA(x) {}
        ~CB() {}
    };
    
    int main() {
        CA a1;
        a1.SetI(5);
        cout << a1.GetI() << endl;
        CB b1; // 编译错误,因为CB类不能直接访问CA类的私有成员
        return 0;
    }
    

    原因:CB类是私有继承自CA类,所以它不能直接访问CA类的私有成员。要解决这个问题,可以将CA类的私有成员改为公有成员,或者将CB类改为公有继承自CA类。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月22日
  • 创建了问题 12月18日

悬赏问题

  • ¥15 Fatal error in Process MEMORY
  • ¥15 labelme生成的json有乱码?
  • ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
  • ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
  • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
  • ¥45 求17位带符号原码乘法器verilog代码
  • ¥20 PySide6扩展QLable实现Word一样的图片裁剪框
  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统