Zamanı dakika ve saniyeye dönüştürün

Yapıcı kullanarak zamanı dakika ve saniyeye dönüştürmek için bir kod yaptım. Çıktı olarak saniyeler içinde zaman alıyorum ama dakikalar içinde zamanı göstermiyordum ve hatamı bulamıyorum, bu yüzden kimse bana yardım edebilir ...

#include
using namespace std;

class Time
{
public:
    Time(int);
    Time(float);
};

Time::Time(int t)
{
    cout << "Time in seconds: " << t*60*60 << "\n";
}
Time::Time(float t)
{
    cout << "Time in Minutes: " << int(t*60) << "\n";
}

int main()
{
    int hr;
    cout << "Enter the time in Hours: ";
    cin >> hr;
    Time t1(hr);
    Time t2(float(hr));
}
1
Bu, sınıflar için değil 'dir.
katma yazar Lightness Races in Orbit, kaynak
Bu, sınıflar için değil 'dir.
katma yazar Lightness Races in Orbit, kaynak
Bu, sınıflar için değil 'dir.
katma yazar Lightness Races in Orbit, kaynak
Lütfen çıktınızı ekler misiniz?
katma yazar Gaurav Dave, kaynak
@Light En azından çok yaratıcı ... Etkisiz ama yaratıcı
katma yazar Otomo, kaynak
@Light En azından çok yaratıcı ... Etkisiz ama yaratıcı
katma yazar Otomo, kaynak
@Light En azından çok yaratıcı ... Etkisiz ama yaratıcı
katma yazar Otomo, kaynak
ÇIKIŞ: sh-4.2 # g ++ -std = c ++ 11 - ana * .cpp sh-4.2 # main Saat: 4 saniye cinsinden zamanı girin: saniye cinsinden süre: 14400 sh-4.2 # g ++ -std = c ++ 11 - o ana * .cpp
katma yazar Attiqa Tariq, kaynak
ÇIKIŞ: sh-4.2 # g ++ -std = c ++ 11 - ana * .cpp sh-4.2 # main Saat: 4 saniye cinsinden zamanı girin: saniye cinsinden süre: 14400 sh-4.2 # g ++ -std = c ++ 11 - o ana * .cpp
katma yazar Attiqa Tariq, kaynak

10 cevap

Doğru bir şekilde tahmin yapmıyorsunuz. İstenen türü parantez içine alarak

değil parantez içinde yazarak işlem yazmanız gerekir. Örneğin, bunu yapmanız gerekir:

Time t2((float) hr);

cout << "Time in Minutes: " << (int) t*60 << "\n";

Time t2 (float (hr)); yasal olsa da, işlev bir prototip çünkü bu bir vex ayrıştırma . Time t2 (float hr); 'e eşdeğerdir; bu, t2 ' nin "hr" adlı bir float alan ve dönen bir işlev olduğu anlamına gelir bir Zaman . Bunun bir etkisi yoktur, çünkü böyle bir fonksiyon asla gerçekleştirilmez veya çağrılmaz.

Bu saçma görünüyorsa, yardımcı olabilecek düşünmenin bir yolu var. Bu kodu göz önünde bulundurun:

Time t2 (float (*hr));

Açıkçası bu, t2 'yi "hr" adlı bir float imlecine götüren bir işlev olarak bildirmenin normal bir yoludur. Peki, * olmadan da yasal olmamalı mı? Ve C ++ gramer kuralı, eğer bir şey prototip olabilirse, öyledir.

3
katma
İnt (..) bir tamsayı türü için bir yapıcı olduğunu düşündüm? neden burada bize doğru gelmiyor?
katma yazar vib, kaynak
Mesela int (..) veya (int) .. 'den önce herhangi bir fark olmadığı görülüyor. cplusplus.com/doc/tutorial/typecasting (yorumunda belirtildiği gibi) yeni kaldırıldı)
katma yazar vib, kaynak
Doğru bir şekilde tahmin yapmıyorsunuz. İşlev olarak kullanmaya çalışarak istediğiniz türü parantez içerisine yazarak yazmanız gerekir. - Fonksiyonel programlama uygulaması döküm işlemine eşdeğerdir
katma yazar Otomo, kaynak
Fakat zaman için yapıcı kullanıyoruz. ve bunun bir kurucu olduğunu göstermez ve değişken de böyle bildirilmez ... ??
katma yazar Attiqa Tariq, kaynak

eklemeyi dene

Time::Time(float t)
{
    cout << "Time in Minutes: " << float(t*60) << "\n";
}

işe yarayıp yaramadığını söyle ..

1
katma
hayır hala bana saniyeler içinde çıktı veriyor
katma yazar Attiqa Tariq, kaynak

eklemeyi dene

Time::Time(float t)
{
    cout << "Time in Minutes: " << float(t*60) << "\n";
}

işe yarayıp yaramadığını söyle ..

1
katma
hayır hala bana saniyeler içinde çıktı veriyor
katma yazar Attiqa Tariq, kaynak

eklemeyi dene

Time::Time(float t)
{
    cout << "Time in Minutes: " << float(t*60) << "\n";
}

işe yarayıp yaramadığını söyle ..

1
katma
hayır hala bana saniyeler içinde çıktı veriyor
katma yazar Attiqa Tariq, kaynak

Çalışması gerekir:

Time t2((float)hr);
1
katma

Çalışması gerekir:

Time t2((float)hr);
1
katma

Çalışması gerekir:

Time t2((float)hr);
1
katma
Time::Time(int hour){
    cout << "Time in seconds: " << hour*60*60 << "\n";
    cout << "Time in minutes: " << hour*60 << "\n";
}
0
katma
Time::Time(int hour){
    cout << "Time in seconds: " << hour*60*60 << "\n";
    cout << "Time in minutes: " << hour*60 << "\n";
}
0
katma
Time::Time(int hour){
    cout << "Time in seconds: " << hour*60*60 << "\n";
    cout << "Time in minutes: " << hour*60 << "\n";
}
0
katma