- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是新来的。我目前正在 DeVry 在线学习中级 C++ 编程。我们正在使用 C++ Primer Plus 这本书,到目前为止我一直做得很好。我的老师最近向我们扔了一个曲线球。我目前的任务是这样的:
创建一个带有一个变量的 Seconds 类:totalSeconds(使用 long 类型)。该类应该有一种行为(方法):convert()。此行为应通过引用接收以下变量:天、小时、分钟和秒。该方法应将 totalSeconds 转换为以天、小时、分钟和秒为单位的等效时间。在类中使用符号常量表示一天的小时数、一小时的分钟数和一分钟的秒数。
编写一个简短的主程序来获取总秒数(使用 long 类型)。然后,创建一个 Seconds 对象。使用构造函数或修改器将 totalSeconds 传递给 Seconds 对象。调用 convert() 方法,将天、小时、分钟和秒作为参数和引用发送。在 main 方法中显示天、小时、分钟和秒。任何道路,这是我的代码:
主要.cpp
/*GSP 125 Intmed Prgrmg C++/OOP main.cpp*/
#include <iostream>
#include <string>
#include <conio.h>
#include <fstream>
#include "sec.h"
using namespace std;
int input = 0;
int main()
{
system("TITLE Tick Tack");
char choice1;
ofstream fout;
char filename[50];
cout << "Save results to file ? (Y/N) : ";
(cin >> choice1).get();//make choice, Y or N
if (toupper(choice1) == 'Y')
{
cout << "Enter filename(max 50 characters): ";
cin.getline(filename,50);//string for file name
fout.open(filename);//makes text file with chosen name
}
else
cout << "Results will not be saved!\n\n";
// ToDo: add your code here
cout << "Enter the number of seconds:";
long input;
cin >> input;
BRAVO alpha(long seconds,long minutes,long hours,long days,long years);
long breakdown = alpha.Totalseconds(); //this gets error C2228: left of '.Totalseconds' must have class/struct/union
cout << "\n\n" << input << " seconds = \n"<< breakdown << endl;
cout << year << day_remain << hour_remain << min_remain << seconds << endl;
// pause
cout << "\nPress any key to continue...";
cin.sync();//clearscreen
_getch();//waitkey
// return environment variable
return 0;
}
时间.cpp
// time.cpp
#include "time.h"
// constructors
BRAVO::BRAVO(void)
{
seconds = 0;
minutes = 0;
hours = 0;
days = 0;
years = 0;
}
BRAVO::BRAVO( long seconds, long minutes, long hours, long days, long years)
{
seconds = seconds;
minutes = minutes;
hours = hours;
days = days;
years = years;
}
// destructor
BRAVO::~BRAVO(void)
{}
// behaviors
double BRAVO::Totalseconds(void)
{
long input = 0;
//convert to minutes
long min = input / SecPerMin;
int sec = input % SecPerMin;
//convert to hours
long hour = min / MinPerHour;
int min_remain = min % MinPerHour;
//convert to days
long day = hour / HourPerDay;
int hour_remain = hour % HourPerDay;
//convert to years
long year = day / DaysPerYear;
int day_remain = day % DaysPerYear;
return BRAVO; //this gets error c2275: 'BRAVO' : illegal use of this type as an expression
}
// accessors and mutators
short BRAVO::getseconds(void)
{return seconds;}
void BRAVO::setseconds( long seconds )
{seconds = seconds;}
short BRAVO::getminutes(void)
{return minutes;}
void BRAVO::setminutes( long minutes )
{minutes = minutes;}
short BRAVO::gethours(void)
{return hours;}
void BRAVO::sethours( long hours )
{hours = hours;}
short BRAVO::getdays(void)
{return days;}
void BRAVO::setdays( long days )
{days = days;}
short BRAVO::getyears(void)
{return years;}
void BRAVO::setyears( long years )
{years = years;}
时间.h
// sec.h
#ifndef BRAVO_H_
#define BRAVO_H_
#include <iostream>
// global constants
const int DaysPerYear = 365;
const int HourPerDay = 24;
const int MinPerHour = 60;
const int SecPerMin = 60;
long int seconds = 0;
long int minutes=0;
long int hours=0;
long int days=0;
long int years=0;
int min_remain=0;
int hour_remain=0;
int day_remain=0;
int year=0;
// Class definition
class BRAVO
{
private:
// accessors
short seconds;
short minutes;
short hours;
short days;
short years;
public:
// constructors
BRAVO(void);
BRAVO(long seconds, long minutes, long hours, long days, long years);
// destructor
~BRAVO(void);
// behaviors
double Totalseconds();
// accessors and mutators
short getseconds(void);
void setseconds( long seconds );
short getminutes(void);
void setminutes( long minutes );
short gethours(void);
void sethours( long hours );
short getdays(void);
void setdays( long days );
short getyears(void);
void setyears( long years );
short getmin_remain(void);
void setmin_remain( long min_remain );
short gethour_remain(void);
void sethour_remain( long hour_remain );
short getday_remain(void);
void setday_remain( long day_remain );
};
#endif
error C2275: 'BRAVO' : illegal use of this type as an expression
error C2228: left of '.Totalseconds' must have class/struct/union
我只注意到了两个错误,但是我似乎无法找到具体说明我的确切问题的答案。我相信我在 .h 文件中有点过火,试图添加访问器和常量,但无济于事。其中大部分将被删除。
更新:在遵循提供的第一个答案后,我设法解决了之前的错误。但是,我遇到了一个新的。下面显示的 convertToDecimal 行现在有不同的错误。
long seconds = 0, minutes = 0, hours = 0, days = 0;
BRAVO alpha(input);
float breakdown = alpha.convertToDecimal(seconds, minutes, hours, days); // pass variables by reference
//gets error C2660: 'BRAVO::convertToDecimal' : function does not take 4 arguments
cout << "\n\n" << input << " seconds = \n" << breakdown << endl;
cout << year << day_remain << hour_remain << min_remain << seconds << endl;
我曾尝试更改其中的内容,但我没有运气。我对 convertToDecimal 所做的唯一更改是我以
结尾return convertToDecimal; //this closed the error I was having with it
最佳答案
BRAVO alpha(long seconds,long minutes,long hours,long days,long years);
long breakdown = alpha.Totalseconds(); //this gets error C2228: left of '.Totalseconds' must have class/struct/union
第一行没有意义,您不应该在此处的参数前面指定类型“long”。您也没有将这些变量的任何实例传递给它。调用 TotalSeconds 时的错误失败,因为此问题导致“alpha”未使用有效类型创建。要让它编译,请尝试:
long seconds = 0, minutes = 0, hours = 0, days = 0;
BRAVO alpha(input);
alpha.convert(seconds, minutes, hours, days); // pass variables by reference
请注意,您之前拥有的不是您的作业所要求的,您应该提供一个代表总秒数的变量,并且转换函数应该将其分解为各种组件。更改您的类定义以匹配。
其他人已经评论过
return BRAVO; //this gets error c2275: 'BRAVO' : illegal use of this type as an expression
line 没有任何意义,因为它试图返回一个类型而不是一个变量。
关于c++ - 错误 C2228、错误 C2275,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19216579/
#include using namespace std; class C{ private: int value; public: C(){ value = 0;
这个问题已经有答案了: What is the difference between char a[] = ?string?; and char *p = ?string?;? (8 个回答) 已关闭
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 7 年前。 此帖子已于 8 个月
除了调试之外,是否有任何针对 c、c++ 或 c# 的测试工具,其工作原理类似于将独立函数复制粘贴到某个文本框,然后在其他文本框中输入参数? 最佳答案 也许您会考虑单元测试。我推荐你谷歌测试和谷歌模拟
我想在第二台显示器中移动一个窗口 (HWND)。问题是我尝试了很多方法,例如将分辨率加倍或输入负值,但它永远无法将窗口放在我的第二台显示器上。 关于如何在 C/C++/c# 中执行此操作的任何线索 最
我正在寻找 C/C++/C## 中不同类型 DES 的现有实现。我的运行平台是Windows XP/Vista/7。 我正在尝试编写一个 C# 程序,它将使用 DES 算法进行加密和解密。我需要一些实
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
有没有办法强制将另一个 窗口置于顶部? 不是应用程序的窗口,而是另一个已经在系统上运行的窗口。 (Windows, C/C++/C#) 最佳答案 SetWindowPos(that_window_ha
假设您可以在 C/C++ 或 Csharp 之间做出选择,并且您打算在 Windows 和 Linux 服务器上运行同一服务器的多个实例,那么构建套接字服务器应用程序的最明智选择是什么? 最佳答案 如
你们能告诉我它们之间的区别吗? 顺便问一下,有什么叫C++库或C库的吗? 最佳答案 C++ 标准库 和 C 标准库 是 C++ 和 C 标准定义的库,提供给 C++ 和 C 程序使用。那是那些词的共同
下面的测试代码,我将输出信息放在注释中。我使用的是 gcc 4.8.5 和 Centos 7.2。 #include #include class C { public:
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我的客户将使用名为 annoucement 的结构/类与客户通信。我想我会用 C++ 编写服务器。会有很多不同的类继承annoucement。我的问题是通过网络将这些类发送给客户端 我想也许我应该使用
我在 C# 中有以下函数: public Matrix ConcatDescriptors(IList> descriptors) { int cols = descriptors[0].Co
我有一个项目要编写一个函数来对某些数据执行某些操作。我可以用 C/C++ 编写代码,但我不想与雇主共享该函数的代码。相反,我只想让他有权在他自己的代码中调用该函数。是否可以?我想到了这两种方法 - 在
我使用的是编写糟糕的第 3 方 (C/C++) Api。我从托管代码(C++/CLI)中使用它。有时会出现“访问冲突错误”。这使整个应用程序崩溃。我知道我无法处理这些错误[如果指针访问非法内存位置等,
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我有一些 C 代码,将使用 P/Invoke 从 C# 调用。我正在尝试为这个 C 函数定义一个 C# 等效项。 SomeData* DoSomething(); struct SomeData {
这个问题已经有答案了: Why are these constructs using pre and post-increment undefined behavior? (14 个回答) 已关闭 6
我是一名优秀的程序员,十分优秀!