18.03.14 类和对象作业2

A:Apple

描述

程序填空,使其输出4 5 1

#include <iostream>
using namespace std;
class Apple {
// 在此处补充你的代码
static void PrintTotal() {
        cout << nTotalNumber << endl;
    }

};
int Apple::nTotalNumber = 0;
Apple Fun(const Apple & a) {
    a.PrintTotal();
    return a;
}
int main()
{
    Apple * p = new Apple[4];
    Fun(p[2]);
    Apple p1,p2;
    Apple::PrintTotal ();
    delete [] p;
    p1.PrintTotal ();
    return 0;
}

输入无输出

4
5
1

样例输入

None

样例输出

4
5
1

来源Guo Wei

 1 #include <iostream>
 2 using namespace std;
 3 class Apple {
 4     static int nTotalNumber;
 5 public:
 6     Apple(){
 7         nTotalNumber++;
 8     }
 9     ~Apple(){
10         nTotalNumber--;
11     }
12
13 static void PrintTotal() {
14         cout << nTotalNumber << endl;
15     }
16
17 };
18 int Apple::nTotalNumber = 0;
19 Apple Fun(const Apple & a) {
20     a.PrintTotal();
21     return a;
22 }
23 int main()
24 {
25     Apple * p = new Apple[4];
26     Fun(p[2]);
27     Apple p1,p2;
28     Apple::PrintTotal ();
29     delete [] p;
30     p1.PrintTotal ();
31     return 0;
32 }

B:奇怪的类复制

描述

程序填空,使其输出9 22 5

#include <iostream>
using namespace std;
class Sample {
public:
    int v;
// 在此处补充你的代码
};
void PrintAndDouble(Sample o)
{
    cout << o.v;
    cout << endl;
}
int main()
{
    Sample a(5);
    Sample b = a;
    PrintAndDouble(b);
    Sample c = 20;
    PrintAndDouble(c);
    Sample d;
    d = a;
    cout << d.v;
    return 0;
}

输入无输出

9
22
5

样例输入

None

样例输出

9
22
5

来源Guo Wei

 1 #include <iostream>
 2 using namespace std;
 3 class Sample {
 4 public:
 5     int v;
 6 Sample(const Sample&a){
 7         v=a.v+2;
 8     }
 9     Sample(int i=0){
10         v=i;
11     }
12 };
13 void PrintAndDouble(Sample o)
14 {
15     cout << o.v;
16     cout << endl;
17 }
18 int main()
19 {
20     Sample a(5);
21     Sample b = a;
22     PrintAndDouble(b);
23     Sample c = 20;
24     PrintAndDouble(c);
25     Sample d;
26     d = a;
27     cout << d.v;
28     return 0;
29 }

const很重要

C:返回什么才好呢

描述

程序填空,使其按要求输出

#include <iostream>
using namespace std;
class A {
public:
    int val;

    A(int
// 在此处补充你的代码
};
int main()
{
    int m,n;
    A a;
    cout << a.val << endl;
    while(cin >> m >> n) {
        a.GetObj() = m;
        cout << a.val << endl;
        a.GetObj() = A(n);
        cout << a.val<< endl;
    }
    return 0;
}

输入

多组数据,每组一行,是整数 m 和 n输出先输出一行: 
123 
然后,对每组数据,输出两行,第一行是m,第二行是n样例输入

2 3
4 5

样例输出

123
2
3
4
5

来源Guo Wei

1 c=123){
2         val=c;
3     }
4     A& GetObj(){
5         return *this;
6     }

我……不知道有this指针的存在……(弱死)

D:第四周程序填空题1

描述

下面程序的输出是:

3+4i

5+6i

请补足Complex类的成员函数。不能加成员变量。

#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
class Complex {
private:
    double r,i;
public:
    void Print() {
        cout << r << "+" << i << "i" << endl;
    }
// 在此处补充你的代码
};
int main() {
    Complex a;
    a = "3+4i"; a.Print();
    a = "5+6i"; a.Print();
    return 0;
}

输入

输出

3+4i
5+6

i样例输入

None

样例输出

3+4i
5+6i

1   Complex(char a[]="0"){
2         r=a[0]-‘0‘;
3         i=a[2]-‘0‘;
4     }

emmm……还没学重载不知道发生了啥,一开始一直RE重载了一下赋值运算符然后突然过了??

E:MyString

描述

补足MyString类,使程序输出指定结果

#include <iostream>
#include <string>
#include <cstring>
using namespace std;
class MyString {
    char * p;
public:
    MyString(const char * s) {
        if( s) {
            p = new char[strlen(s) + 1];
            strcpy(p,s);
        }
        else
            p = NULL;

    }
    ~MyString() { if(p) delete [] p; }
// 在此处补充你的代码
};
int main()
{
    char w1[200],w2[100];
    while( cin >> w1 >> w2) {
        MyString s1(w1),s2 = s1;
        MyString s3(NULL);
        s3.Copy(w1);
        cout << s1 << "," << s2 << "," << s3 << endl;

        s2 = w2;
        s3 = s2;
        s1 = s3;
        cout << s1 << "," << s2 << "," << s3 << endl;

    }
}

输入

多组数据,每组一行,是两个不带空格的字符串

输出

对每组数据,先输出一行,打印输入中的第一个字符串三次
然后再输出一行,打印输入中的第二个字符串三次样例输入

abc def
123 456

样例输出

abc,abc,abc
def,def,def
123,123,123
456,456,456

来源Guo Wei

 1 ~MyString() { if(p) delete [] p; }
 2     MyString(const MyString&s) {
 3         p = new char[strlen(s.p) + 1];
 4         strcpy(p, s.p);
 5     }
 6     void Copy(const char*s) {
 7         p = new char[strlen(s) + 1];
 8         strcpy(p, s);
 9     }
10     friend ostream & operator << (ostream &output, const MyString &s) {
11         output << s.p;
12         return output;
13     }
14     MyString& operator=(const char*s) {
15         delete[]p;
16         p = new char[strlen(s) + 1];
17         strcpy(p, s);
18         return *this;
19     }
20     void operator=(MyString& a) {
21         strcpy(p,a.p);
22     }

F:Big & Base 封闭类问题

描述

程序填空,输出指定结果

#include <iostream>
#include <string>
using namespace std;
class Base {
public:
    int k;
    Base(int n):k(n) { }
};
class Big
{
public:
    int v;
    Base b;
// 在此处补充你的代码
};
int main()
{
    int n;
    while(cin >>n) {
        Big a1(n);
        Big a2 = a1;
        cout << a1.v << "," << a1.b.k << endl;
        cout << a2.v << "," << a2.b.k << endl;
    }
}

输入

多组数据,每组一行,是一个整数

输出

对每组数据,输出两行,每行把输入的整数打印两遍样例输入

3
4

样例输出

3,3
3,3
4,4
4,4

来源Guo Wei

1  Big(int n):v(n),b(n){
2     }

原文地址:https://www.cnblogs.com/yalphait/p/8570867.html

时间: 2024-10-06 12:59:40

18.03.14 类和对象作业2的相关文章

JAVA类与对象作业——动手动脑以及课后实验性问题

一: 1.源代码 //MAO2015.10.6 //foo class Foo { int value; public Foo(int initValue) { value = initValue; } } public class Test2 { public static void main(String[] args) { Foo obj1 = new Foo(2); } } 2.截图 3.总结 如果一个类提供自定义的构造方法,导致系统不再提供默认构造方法. 二: 1.源代码 //mao2

动手动脑(类与对象作业再次提交)

Java字段初始化的规律: 1有实际参数值的,按实际参数值进行初始化例如obj=new Init(300); System.out.println(obj.field); 2没有给出实际参数值时,找默认的构造函数例如Init obj=new Init(); System.out.println(obj.field); 2当多个类之间有继承关系时,创建子类对象导致父类初始化快的执行的程序: package com; class Father { static { System.out.printl

javascript:类数组 -- 对象

在javascript中,对象与数组都是这门语言的原生规范中的基本数据类型,处于并列的位置. 类数组:本质是一个对象,只是这个 对象  的属性有点特殊,模拟出数组的一些特性. 一般来说,如果我们有一个对象obj和一个数组a: obj["attr1"];    //取obj对象的attr1属性 a[1];              //取数组a中的第二个元素 但是,有些时候,也会将一个对象"伪装"成一个数组来用,我们把这种对象称为"类数组对象",再

类与对象课后作业

1.查询"你已经创建了多少个对象?" 源代码: 1 public class How { 2 public static void main(String[] args) { 3 a1 b1 = new a1(); 4 a1 b2 = new a1(); 5 a1 b3 = new a1(); 6 //我已经创建了3个对象,接下来调用a1类的静态变量查询创建了多少对象 7 System.out.println("我已经创建的对象个数为: "+a1.value); 8

Python3基础18——类与对象

类与对象class 命名规范:首字母大写 驼峰命名 见名知意.类的概念 :具有某一类共同属性和特性的事物,类一般包含 属性以及方法 1 class Teacher: 2 name="哒哒" 3 age="23" 4 5 def coding(self): # 实例方法(self):意味着这个方法只能实例来调用 6 print(self.name+"会敲代码") 7 8 def cooking(self):#实例方法 9 print(self.na

l类与对象课后作业

java 的初始化规律 执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”. 执行类的构造函数. 类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行.因此,适合于封装那些“对象创建时必须执行的代码” 当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行. 请自行编写示例代码验证以上结论. public class InitializeBlockDemo { /**   * @param args   */ public static vo

Java类和对象课后作业

1. public class test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Foo obj1=new Foo(); Foo onj2=new Foo(); System.out.println(obj1==obj2); } } class Foo{ int value=100; } 截图: 总结: 当"=="施加于原始数据类

08.18 javascript 06 数组 数组的概念 创建数组 读取数组中的元素 稀疏数组 添加和删除数组的元素 数组遍历 多维数组 数组的方法 类数组对象 作为数组的字符串

# 数组 ### 数组的概念 * 数组是值的有序集合 * 数组中的每个值 称之为 元素 * 每个元素可以是任意数据类型的值 * 每个元素都有索引(下标) * 元素的索引从0开始,按照顺序递增. 元素最大的索引 2^32-2 ### 创建数组 * 直接量 `[]` * 构造函方式  `new Array()` ### 读写数组中的元素 * 数组名[索引] ### 稀疏数组 * js数组的索引是连续的 * 没有连续的给元素赋值 , 没有赋值的元素会自动赋值 undefined ### 添加和删除 数

JAVA作业 04 类与对象

一.动手动脑 1)题目要求:验证ClassAndObjectTest.java(使用自定义类) 2)源代码: public class ClassAndObjectTest { public static void main(String[] args) { //创建类的实例,定义一个对象变量引用这一实例 MyClass obj = new MyClass(); //通过对象变量调用类的公有方法 obj.myMethod("Hello"); //给属性赋值 obj.setValue(1