标题:本想编一个关于“时钟”的编程,但是程序显示总是错的,求问怎样改进!
只看楼主
蛤蟆001
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2016-9-2
结帖率:70%
 问题点数:0 回复次数:3 
本想编一个关于“时钟”的编程,但是程序显示总是错的,求问怎样改进!
#include<iostream>
#include<Time.h>
using namespace std;

void  printTime( Time &t)   //  D:\C++\例子\之中.cpp(5) : error C2065: 'Time' : undeclared identifier

class Time
{
    friend void printTime (Time &t);
public:
 Time (int hour ,int min, int sec);
private:
    int m_ihour;
    int m_iminte;
    int m_isecond;
}
int main(void)
{
    Time t(6,34,25);
    printTime(t);

    systerm("pause");
    return 0;
}
void printTime (TIme &t)
cout << t.m_ihour<< ":"<< t.m_iminte << ":" << t.m_isecond <<endl;
搜索更多相关主题的帖子: friend include public return private 
2016-09-17 08:14
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
根据你的代码原样修改
程序代码:
#include <iostream>
#include <ctime>
using namespace std;

class Time;
void PrintTime( const Time& t );

class Time
{
    friend void PrintTime( const Time& t );
public:
    Time( int hour, int min, int sec ) : m_ihour(hour), m_iminte(min), m_isecond(sec)
    {
    }
private:
    int m_ihour;
    int m_iminte;
    int m_isecond;
};

int main( void )
{
    Time t(6,34,25);
    PrintTime(t);

    return 0;
}

void PrintTime( const Time& t )
{
    cout << t.m_ihour<< ":"<< t.m_iminte << ":" << t.m_isecond <<endl;
}


按照C++风格写代码
程序代码:
#include <iostream>
#include <iomanip>

class Time
{
public:
    Time( int hour, int minute, int second )
        : hour_(hour), minute_(minute), second_(second)
    {
    }
private:
    int hour_;
    int minute_;
    int second_;

    friend std::ostream& operator<<( std::ostream& os, const Time& t );
};

std::ostream& operator<<( std::ostream& os, const Time& t )
{
    char save = os.fill('0');
    os << std::setw(2) << t.hour_ << ':' << std::setw(2) << t.minute_ << ':' << std::setw(2) << t.second_;
    os.fill( save );
    return os;
}

using namespace std;

int main( void )
{
    Time t( 6,34,25 );
    cout << t << endl;

    return 0;
}

2016-09-18 08:30
玫尔
Rank: 1
等 级:新手上路
威 望:1
帖 子:2
专家分:0
注 册:2016-8-30
得分:0 
我在你原基础上改的;


#include<iostream>
#include<time.h>
using namespace std;

class Time;
void  printTime( Time &t);  

class Time
{
    friend void printTime (Time &t);
public:
    Time (int hour ,int min, int sec)
    {
        m_ihour=hour;
        m_iminte=min;
        m_isecond=sec;
    };
private:
    int m_ihour;
    int m_iminte;
    int m_isecond;
};

void printTime (Time &t)
{
    cout << t.m_ihour<< ":"<< t.m_iminte << ":" << t.m_isecond <<endl;
}
int main(void)
{
    Time t(6,34,25);
    printTime(t);
   
    system("pause");
    return 0;
}


构造函数要把值赋给成员变量。
2016-09-19 21:58
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:0 
这个程序楼主要实现的功能其实就是把输入的三个数字用冒号隔开再输出。可以写得更简单的,也不用包含time.h
2016-09-19 22:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-468865-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.104109 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved