Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 3 của 3
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    sử dụng hàm trong C++

    mình có xem một số ví dụ thấy trong cùng một chương trình mà cài đặt hai hàm có cùng tên(không phải đệ quy) nhưng khác về tham số, vậy các hàm này hoạt động như thế nào? ví dụ như langman da viet:
    #include <iostream>
    using namespace std;

    void nhiphan(unsigned n)
    {
    n>>1?nhiphan(n>>1):0;
    printf("%d",n&1);
    }

    void nhiphan(float n)
    {
    nhiphan(*(unsigned *)(void*)&n);
    }

    void main()
    {
    nhiphan(3.9f);
    getch();
    }
    mong mọi người chỉ giúp với!
    thanks!

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi dangvanhoavc
    mình có xem một số ví dụ thấy trong cùng một chương trình mà cài đặt hai hàm có cùng tên(không phải đệ quy) nhưng khác về tham số, vậy các hàm này hoạt động như thế nào?
    mong mọi người chỉ giúp với!
    thanks!
    Khi mình gọi một hàm, mà tên hàm này lại có đến 2 cài, thì nó sẽ xét xem lúc mình gọi hàm, mình truyền vào cái gì, rồi từ đó nó "nhìn" lên các hàm con xem cái truyền vào đó có giống với cái khai báo của hàm con này không nếu đúng thì chạy hàm con đó. VD:

    Mã:
    #include<stdio.h>int tong(int a,int b){    int t=a+b;    return t;}int tong(int a[],int n){    int t=0;    for (int i=0;i<n;i++)        t+=a[i];    return t;}void main(){    int a[20],n;    printf("Nhap so pt: ");    scanf("%d",&n);    for (int i=0;i<n;i++)    {        printf("
    Nhap a[%d]: ",i);        scanf("%d",&a[i]);    }    printf("Tong 1 (ham int tong(int a,int b)): %d
    ",tong(a[0],a[1]));    printf("Tong 2 (ham int tong(int a[],int n)): %d
    ",tong(a,n));}
    Với dòng lệnh: printf("Tong 1 (ham int tong(int a,int b)): %d
    ",tong(a[0],a[1]));
    thì nó sẽ chạy đến hàm con int tong(int a,int b), vì thứ truyền vào là a[0] và a[1] - là 2 biến nguyên, phù hợp với hàm đó.
    Còn với dòng lệnh: printf("Tong 2 (ham int tong(int a[],int n)): %d
    ",tong(a,n));
    Cái truyền vào đó là a - mà a là một mảng - nên nó sẽ tìm cái hàm con nào có truyền vào mảng thì chạy

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •