以下块 main() 在每个函数(全局范围)
第1块之外和之前:
struct flight{
int number;
int capacity;
int passengers;
};
Run Code Online (Sandbox Code Playgroud)
有了这个,你可以创建数组,指针,变量与写作形成对比}var; (它只定义了这个自定义数据类型的一个变量(struct flight))
第二块:
typedef struct flight{
int number;
int capacity;
int passengers;
}flight;
Run Code Online (Sandbox Code Playgroud)
声明这将创建一个数据类型的飞行,而不必编写结构飞行的所有时间
在一个块的末尾写我的问题是,为什么需要typedef的飞行第二次?
这有点令人困惑(它看起来只是该数据类型的变量)
我制作了一个接受字符串(名字/姓氏)的程序,但是我不是
3岁的Phil Snowken 的典型输出,而是3 岁的
Phil
Snowken
#include <stdio.h>
#define N 10
struct data{
char fname[30];
char lname[30];
int age;
};
main()
{
int i;
struct data base[N];
for(i=0;i<N;i++){
printf("\n-------------------------");
printf("\nPeople Data(%d remaining)\n",N-i);
printf("---------------------------\n\n");
printf("\nFirst Name ");
fgets(base[i].fname,30,stdin);
printf("\nLast Name ");
fgets(base[i].lname,30,stdin);
printf("\nAge ");
scanf(" %d",&(base[i].age));
fflush(stdin);
}
for(i=0;i<N;i++)
printf("%s %s Year:(%d)",base[i].fname,base[i].lname,base[i].age);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我已经完成了以下运算符重载,它在预期的下面的类对象上工作.但是当我将此指针传递给向量中的类对象时,输出流不起作用(以我定义的方式)
对于这类问题我很抱歉,但我是C++的新手,我不知道如何准确地提出这个问题.
运算符重载:(shape.cpp)
ostream &operator<<(ostream &output, Shape &S)
{
output << S.name << " (" << S.id << ") " << endl;
return output;
}
Run Code Online (Sandbox Code Playgroud)
内部形状类(shape.h): friend ostream& operator<<(ostream& output, Shape &S);
main.cpp:
#include <iostream>
#include <vector>
using std::cout;
int main()
{
vector<Shape*> array;
Shape * s1 = new Shape("Square");
array.push_back(s1);
cout << *s1; //Prints "Square (1)"
cout << array[0]; //Prints "007CADC8" maybe hex address of vector element?
return 0;
}
Run Code Online (Sandbox Code Playgroud)