C++面向对象实验二
实验二
- 编写一个将整数扩大十倍的函数func。
//func.c
void fun(int *a)
{
? int temp;
? temp = *a * 10;
? *a = temp;
}
/func.h
void func(int *a);
//main.c
#include<stdio.h>
#include <iostream>
#include"func.h"
int main()
{
? int m = 10;
? func(&m);
? printf("%d\n", m);
? system("pause");
? return 0;
}
- 将1改写为引用参数类型的版本
//func.c
void func(int& a)
{
?? int temp;
temp = a * 10;
?? a = temp;
}
//func.h
void func(int &a);
//main.c
#include<stdio.h>
#include <iostream>
#include"func.h"
int main()
{
? int m = 10;
? func(m);
? printf("%d\n", m);
? system("pause");
? return 0;
3、形如下面的整型单链表类型:
? ?struct LinkNode
? ??{
? ? ? ? ?int data;
? ? ? ? ?LinkNode* next;
? ? ?};
- 编写声明为void headInsert(LinkNode**);的无表头节点头插法函数
- 将1)改写为引用版本
? ? ?3)编写声明为void headInsert(LinkNode*);的有表头节点头插法函数
? ? ?4)将3)改写为类封装版本的静态成员函数
headInsert.cpp代码:
#include<malloc.h>
#include<stdio.h>
struct LinkNode
{
??? int data;
??? LinkNode* next;
};
//无表头
void headInsert(LinkNode** head) {
??? LinkNode* newNode = (LinkNode*)malloc(sizeof(LinkNode));
??? scanf_s("%d", &(newNode->data));
??? newNode->next = *head;
??? *head = newNode;
}
void headInsert(LinkNode*& head) {
??? LinkNode* newNode = (LinkNode*)malloc(sizeof(LinkNode));
??? scanf_s("%d", &(newNode->data));
??? newNode->next = head;
??? head = newNode;
}
//有表头
void headInsert(LinkNode* head) {
??? LinkNode* newNode = (LinkNode*)malloc(sizeof(LinkNode));
??? scanf_s("%d", &(newNode->data));
??? newNode->next = head->next;
??? head->next = newNode;
}
headInsert.h代码:
#pragma once
struct LinkNode
{
??? int data;
??? LinkNode* next;
};
void headInsert(LinkNode** head);
void headInsert(LinkNode*& head);
void headInsert(LinkNode* head);
4、编写一个Student类,它只具有name(char*类型)和age(int类型)两个属性,要求:
? ? ?1)无参构造创建一个Student类型的名为zhangsan的对象,它的两个数据成员都采用默认初始化。
? ? ?2)有参构造创建一个Student类型的st对象,其中st.name == “zhangsan” , st.age =18;
//student.h
#pragma once
#include <IOSTREAM>
#include <STRING>
using namespace std;
class Student
{
private:
??? string name;
??? int age;
public:
??? Student()
??? {
??????? name = "";
??????? age = 0;
??? }
??? Student(string n, int a)
??? {
??????? name = n;
??????? age = a;
??? }
??? void PrintInfo()
??? {
??????? cout << name << " " << age << endl;
??? }
};
//main.c
#include<stdio.h>
#include <iostream>
#include"func.h"
#include"headInsert.h"
#include"student.h"
int main()
{
??? //int m = 10;
??? //func(m);
??? //printf("%d\n", m);
??? //LinkNode* head = NULL;
??? //headInsert(&head);
??? Student st("zhangsan",? 18);
??? st.PrintInfo();
??? system("pause");
??? return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!